如何将多个Google Docs中的表格数据批量导入Google Spreadsheet?
批量导入Google Docs表格到Google Spreadsheet解决方案
前置操作
- 将所有待处理的Google Docs文档集中放到同一个Google Drive文件夹中
- 新建一个空白Google Spreadsheet作为数据汇总的目标表格
基于Google Apps Script的实现步骤
- 打开目标Google Spreadsheet,点击顶部菜单「扩展程序」→「Apps Script」进入脚本编辑器
- 删除默认的
Code.gs内容,替换为以下代码:
function importDocsTablesToSheet() { // 替换为你的目标Drive文件夹ID const FOLDER_ID = "你的文件夹ID"; // 替换为目标Spreadsheet的工作表名称(默认为Sheet1) const TARGET_SHEET_NAME = "Sheet1"; const folder = DriveApp.getFolderById(FOLDER_ID); const files = folder.getFilesByType(MimeType.GOOGLE_DOCS); const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(TARGET_SHEET_NAME); let isFirstDoc = true; const particularsKey = "Particulars"; // 固定列名 while (files.hasNext()) { const doc = DocumentApp.openById(files.next().getId()); const tables = doc.getBody().getTables(); // 跳过无表格的文档 if (tables.length === 0) continue; // 取文档内第一个表格(若有多个可调整逻辑) const table = tables[0]; const rowCount = table.getNumRows(); const colCount = table.getNumColumns(); // 提取表头,建立列名与索引的映射 const headerRow = table.getRow(0); const columnMap = {}; for (let col = 0; col < colCount; col++) { const headerText = headerRow.getCell(col).getText().trim(); columnMap[headerText] = col; } // 验证是否包含Particulars列 if (!columnMap[particularsKey]) { console.log(`文档 ${doc.getName()} 缺少Particulars列,已跳过`); continue; } // 提取数据行 const data = []; for (let row = 1; row < rowCount; row++) { const tableRow = table.getRow(row); const rowData = []; // 按表头顺序整理数据(确保与目标Sheet列对齐) Object.keys(columnMap).forEach(colName => { const cellText = tableRow.getCell(columnMap[colName]).getText().trim(); rowData.push(cellText); }); data.push(rowData); } // 写入目标Sheet:表头仅写入一次,后续追加数据 if (isFirstDoc) { targetSheet.clear(); // 清空目标表原有内容 targetSheet.appendRow(Object.keys(columnMap)); // 写入表头 isFirstDoc = false; } if (data.length > 0) { targetSheet.getRange(targetSheet.getLastRow() + 1, 1, data.length, colCount).setValues(data); } console.log(`已导入文档:${doc.getName()}`); } SpreadsheetApp.getUi().alert("所有符合条件的文档表格数据已导入完成"); }
代码配置说明
- 找到目标Drive文件夹的ID:打开文件夹,地址栏中
folders/后的字符串即为文件夹ID,替换代码中的"你的文件夹ID" - 若目标工作表不是默认的
Sheet1,修改TARGET_SHEET_NAME为实际工作表名称
- 找到目标Drive文件夹的ID:打开文件夹,地址栏中
运行与授权
- 点击脚本编辑器顶部的「运行」按钮,首次运行会触发权限验证,按照提示选择「高级」→「前往XX脚本(不安全)」完成授权
- 授权完成后再次运行脚本,等待执行完成
问题排查提示
- 若脚本报错提示权限不足:检查是否在授权时允许了脚本访问Google Drive和Spreadsheet的权限
- 若部分文档数据未导入:查看脚本编辑器的「日志」(点击「查看」→「日志」),确认是否因缺少Particulars列或无表格被跳过
- 若数据列对齐错误:确保所有Docs表格的表头名称完全一致(注意大小写和空格)
内容的提问来源于stack exchange,提问作者Ankit Shetty
相关产品推荐
相关产品推荐

