如何在Google Apps Script中通过Excel文件ID而非文件名导入数据
修改后代码(通过Excel文件ID导入数据)
下面是调整后的代码,核心改动是直接通过文件ID定位Excel文件,避免同名文件导致的错误,保留了原有的清空表格、转换临时文件、导入后清理的逻辑:
function main() { importData(); } function importData() { // 清空目标表格内容 var ss = SpreadsheetApp.getActiveSpreadsheet(); ["order"].forEach(function (s) { var first = ss.getSheetByName(s); first.clear(); }); // 替换为你的Excel文件ID var xlsxFileId = "这里填你的Excel文件ID"; var convertID = convert(xlsxFileId).toString(); // 从转换后的临时表格获取数据 var xLSX = SpreadsheetApp.openById(convertID).getSheetByName("order"); // 替换为你的输出表格ID(保持你原有的设置即可) var targetSheet = SpreadsheetApp.openById("1ROxxxxxxxxxxxxxxxxxx").getSheetByName("order"); var lastColumn = xLSX.getLastColumn(); var lastRow = xLSX.getLastRow(); // 将数据写入目标表格 targetSheet.getRange(1, 1, lastRow, lastColumn).setValues(xLSX.getDataRange().getValues()); // 删除转换后的临时文件 DriveApp.getFileById(convertID).setTrashed(true); } function convert(excelFileId) { // 通过文件ID直接获取Excel文件 var excelFile = DriveApp.getFileById(excelFileId); var blob = excelFile.getBlob(); var config = { title: "[Converted File] " + excelFile.getName(), parents: [{ id: excelFile.getParents().next().getId() }], mimeType: MimeType.GOOGLE_SHEETS }; var spreadsheet = Drive.Files.insert(config, blob); return spreadsheet.id; }
注意事项
- 请把代码中的
这里填你的Excel文件ID替换成你实际的Excel文件ID - 确保你的脚本有访问该Excel文件的权限(可以先手动打开文件确认权限)
- 输出表格ID保持你原有的设置即可
内容的提问来源于stack exchange,提问作者Lemon Roti
相关产品推荐
相关产品推荐

