我尝试从Gmail导入Excel文件并将其自动转换为Google电子表格。我在使用Google Api文件转换器时偶然发现问题,公式转换为#REF值,我无法获得Excel文件中显示的原始值。
外部参与方在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! (见下文)。
如何确保Google API将源转换/复制为值,并且不显示公式#REF!错误?
答案 0 :(得分:1)
并非所有Excel和Google表格都相同。 Google云端硬盘/ Google Sheet内置导入功能已经有办法处理不受支持的功能,但由于您的代码使用UrlFetchApp上传文件,您的脚本应该包含它自己处理不支持的公式/功能的方法。
相关Q& A