Google App Script将Excel文件的公式转换为#Ref

时间:2018-06-11 11:34:01

标签: google-apps-script google-sheets

我尝试从Gmail导入Excel文件并将其自动转换为Google电子表格。我在使用Google Api文件转换器时偶然发现问题,公式转换为#REF值,我无法获得Excel文件中显示的原始值。

Orinial Excel File data

外部参与方在Excel文件中使用该公式的公式示例

  

= VLOOKUP(A4;' G:\某些本地路径\ file.xlsx'!$ A:$ D; 4; FALSE)

我使用以下代码将Excel文件转换为Google电子表格:

  // Re-upload the XLS file after convert in Google Sheet format
  var googleSheet = UrlFetchApp.fetch(
    "https://www.googleapis.com/upload/drive/v2/files?uploadType=media&convert=true", {
      method: "POST",
      contentType: "application/vnd.ms-excel",
      payload: sourceFile.getBlob().getBytes(),
      headers: {
        "Authorization": "Bearer " + ScriptApp.getOAuthToken()
      }
    }
  );

  // Parse upload&convert response data (need this to be able to get id of converted sheet)
  var fileDataResponse = JSON.parse(googleSheet.getContentText());
  SpreadsheetApp.openById(fileDataResponse.id);

打开创建/转换的电子表格时,单元格中的所有值都显示为#REF! (见下文)。

Output values

如何确保Google API将源转换/复制为值,并且不显示公式#REF!错误?

1 个答案:

答案 0 :(得分:1)

并非所有Excel和Google表格都相同。 Google云端硬盘/ Google Sheet内置导入功能已经有办法处理不受支持的功能,但由于您的代码使用UrlFetchApp上传文件,您的脚本应该包含它自己处理不支持的公式/功能的方法。

相关Q& A