我一直在尝试从 Google Drive 中存储的 Excel 文件中提取数据。这是我到目前为止所做的:
function readExcelFromDrive(file_id='1_m2AR8UVOpn9XABPz_WvyPkLzz9OgyPs',debug=true) {
let file = DriveApp.getFileById(file_id);
console.log(`File ${file_id} found.`)
let blob = file.getBlob();
let config = {
title: "[Auto Generated Google Sheets] " + file.getName(),
parents: [{id: file.getParents().next().getId()}],
mimeType: MimeType.GOOGLE_SHEETS
};
let spreadsheet = DriveApp.createFile(blob).setSharing(DriveApp.Access.ANYONE,DriveApp.Permission.EDIT)
console.log(`Temp spreadsheet created. Id: '${spreadsheet.getId()}'`)
let ss = SpreadsheetApp.openById(spreadsheet.getId())
console.log(`Temp spreadsheet opened.`)
let data = ss.getActiveSheet().getDataRange().getValues()
console.log(data)
}
我该如何解决这个问题?
提前致谢
spreadsheet
是 XLSX 文件。另外,不使用config
。当这些点都体现在你的脚本中时,下面的修改如何?
在使用此脚本之前,请在高级 Google 服务中启用 Drive API v3。
function readExcelFromDrive((file_id='1_m2AR8UVOpn9XABPz_WvyPkLzz9OgyPs',debug=true) {
let file = DriveApp.getFileById(file_id);
console.log(`File ${file_id} found.`);
let blob = file.getBlob();
// --- I modified the below script.
let config = {
name: "[Auto Generated Google Sheets] " + file.getName(),
parents: [file.getParents().next().getId()],
mimeType: MimeType.GOOGLE_SHEETS
};
const { id } = Drive.Files.create(config, blob);
let spreadsheet = DriveApp.getFileById(id).setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);
// ---
console.log(`Temp spreadsheet created. Id: '${spreadsheet.getId()}'`);
let ss = SpreadsheetApp.openById(spreadsheet.getId());
console.log(`Temp spreadsheet opened.`);
let data = ss.getActiveSheet().getDataRange().getValues();
console.log(data);
}