Google Sheets 如何仅导入可下载xlsx链接中的指定工作表?
单工作表提取导入解决方案
核心通过Google Apps Script在服务端拉取解析xlsx文件,仅提取指定工作表内容写入Google Sheets,从根源避免全量导入触发的414请求过大报错,操作步骤如下:
- 打开目标Google Sheets文件,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器
- 清空编辑器内默认的示例代码,粘贴下方代码,按照注释修改3个自定义参数:目标xlsx链接、需要提取的工作表名称、本地存放数据的工作表名称
function importSingleSheetFromXlsx() { // 替换为你的xlsx文件地址 const xlsxUrl = "https://dshs.texas.gov/coronavirus/TexasCOVID-19HospitalizationsOverTimebyTSA.xlsx"; // 替换为你需要提取的原xlsx内的工作表名称,需和原表完全一致 const targetSheetName = "你的目标工作表名称"; // 替换为当前Google Sheets中用来存放结果的工作表名称 const outputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的本地工作表名称"); // 拉取并解析xlsx文件 const fileBlob = UrlFetchApp.fetch(xlsxUrl).getBlob(); const originFile = SpreadsheetApp.open(fileBlob); const targetData = originFile.getSheetByName(targetSheetName).getDataRange().getValues(); // 写入数据到本地工作表 outputSheet.clearContents(); outputSheet.getRange(1, 1, targetData.length, targetData[0].length).setValues(targetData); }
- 保存项目后点击运行按钮,首次运行需要按提示完成权限授权,授权完成后即可自动拉取指定工作表内容导入
- 如果需要定时自动同步数据,可在脚本编辑器左侧点击「触发器」选项,按需设置触发周期即可
小提示:如果不清楚原xlsx内的工作表名称,可以在解析文件的代码后加一行
console.log(originFile.getSheets().map(sheet => sheet.getName())),运行后在Apps Script的「执行日志」里就能看到所有工作表的完整名称。
内容的提问来源于stack exchange,提问作者shenn
相关产品推荐
相关产品推荐

