如何在Google Apps Script中读取共享盘Excel数据而不生成表格文件?
无需保存转换文件提取Excel数据的Google Apps Script方案
可以通过生成临时Google表格、读取数据后立即删除的方式解决这个问题,既满足数据提取需求,又不会留下冗余文件。修改后的代码如下:
var files = DriveApp.getFolderById("1AUPqh_WjYasdfasdfkiWThXxC").getFilesByName(fileName); var excelFile = files.hasNext() ? files.next() : null; if (!excelFile) { throw new Error("未找到目标Excel文件"); } var blob = excelFile.getBlob(); var config = { title: "[Temp Converted] " + excelFile.getName(), parents: [{id: DriveApp.getRootFolder().getId()}], mimeType: MimeType.GOOGLE_SHEETS }; var convertedSpreadsheet = Drive.Files.insert(config, blob, {supportsAllDrives: true}); try { // 读取目标工作表数据 var sourceWsData = SpreadsheetApp.openById(convertedSpreadsheet.id) .getSheetByName("Export") .getDataRange() .getValues(); // 后续脚本逻辑(直接使用sourceWsData即可) // ... } finally { // 无论读取过程是否出错,都强制删除临时转换的Google表格 Drive.Files.remove(convertedSpreadsheet.id, {supportsAllDrives: true}); }
关键说明
- 用
try...finally块保证临时文件一定会被清理,避免因脚本报错导致冗余文件残留 - 临时文件标题添加
[Temp]标识,即使意外未删除也能快速识别清理 - 需提前在脚本编辑器的「服务」面板中添加启用Drive API,否则
Drive.Files.remove方法无法正常执行
内容的提问来源于stack exchange,提问作者Schnodahipfe
相关产品推荐
相关产品推荐

