使用Google Apps Script将CSV指定行导入对应Google Sheet
按姓名拆分CSV行导入对应Google Sheet的实现方案
核心逻辑是直接通过Google Apps Script读取Drive内的CSV文件、解析为二维数组后按A列姓名匹配写入对应表,无需提前将CSV转为Google Sheet格式。
完整可运行代码
function importCsvRowsToPersonalSheets() { // 替换为你存储在Google Drive中的CSV文件ID const CSV_FILE_ID = "替换为你的CSV文件ID"; // 替换为人员姓名与对应专属Google Sheet ID的映射关系 const NAME_SHEET_MAP = { "John": "John的Google Sheet ID", "Mary": "Mary的Google Sheet ID", // 按实际需求补充更多人员映射 }; // 若CSV第一行为表头则填true,无表头则填false const HAS_HEADER = true; // 读取并解析CSV文件 const csvFile = DriveApp.getFileById(CSV_FILE_ID); const csvText = csvFile.getBlob().getDataAsString(); const rowData = Utilities.parseCsv(csvText); // 确定遍历起始行(跳过表头) const startIndex = HAS_HEADER ? 1 : 0; // 遍历行数据写入对应表 for (let i = startIndex; i < rowData.length; i++) { const currentRow = rowData[i]; const userName = currentRow[0]; if (NAME_SHEET_MAP[userName]) { const targetSs = SpreadsheetApp.openById(NAME_SHEET_MAP[userName]); const targetSheet = targetSs.getActiveSheet(); // 首次写入时自动添加表头 if (i === startIndex && HAS_HEADER && targetSheet.getLastRow() === 0) { targetSheet.appendRow(rowData[0]); } targetSheet.appendRow(currentRow); } } }
使用说明
- 可在任意Google Sheets页面点击「扩展程序」-「Apps脚本」进入编辑器,粘贴上述代码后替换3处自定义参数即可运行。
- 文件ID获取方式:打开Drive内的文件,URL中
/d/和/edit之间的字符串即为文件ID。 - 如需定时自动同步,可在Apps脚本编辑器左侧「触发器」栏添加时间驱动触发器,按需求设置同步频率。
- 如需避免重复导入,可每次运行前先清空目标表内容,或额外增加导入状态标记逻辑。
内容的提问来源于stack exchange,提问作者cgstats
相关产品推荐
相关产品推荐

