使用应用程序脚本在 Google Drive 内的 Excel 中提取数据

问题描述 投票:0回答:1

我一直在尝试从 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)
  }

我收到以下错误 enter image description here

我该如何解决这个问题?

提前致谢

google-sheets google-apps-script google-drive-api
1个回答
0
投票

修改要点:

  • 在您的显示脚本中,
    spreadsheet
    是 XLSX 文件。另外,不使用
    config
  • 在您的情况下,需要使用 Drive API 将 XLSX 转换为 Google 电子表格。

当这些点都体现在你的脚本中时,下面的修改如何?

修改后的脚本:

在使用此脚本之前,请在高级 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);
}
  • 运行此脚本时,XLSX 文件将转换为 Google 电子表格,并从第一张表中检索值。
  • 创建的电子表格与 XLSX 文件放入同一文件夹中。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.