You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:20:40