如何修改Google Apps Script实现按C列多ID过滤导入表格数据?
实现Google Apps Script数据过滤导入功能
原代码可将指定源表格的"A:J"全量数据导入到当前表格的"test_ee"标签页,现修改为仅导入源表格C列(门店ID列)中匹配指定ID值的数据,同时支持自定义过滤列和目标值:
function importhistorical_sales_ee() { // -------------------------- 过滤配置区 -------------------------- const filterColumnIndex = 2; // 过滤列的索引,C列对应索引2(数组从0开始计数) const targetStoreIds = ['ID1', 'ID2', 'ID3', 'ID4', 'ID5', 'ID6', 'ID7', 'ID8']; // 替换为你的8个指定门店ID // -------------------------- 配置结束 -------------------------- // 获取源表格数据 const sourceSheet = SpreadsheetApp.openById('1mVECYu27lnOIFf7vHk1kI_55DID3APvWr_toWuZho14') .getSheetByName('Historical sales for SC planning -.csv'); const values = sourceSheet.getRange('A:J').getValues(); // 过滤数据:保留表头 + 匹配目标ID的行 const filteredValues = values.filter((row, index) => { // 第一行是表头,直接保留 if (index === 0) return true; // 检查当前行的过滤列值是否在目标ID数组中 return targetStoreIds.includes(row[filterColumnIndex]); }); // 写入目标表格 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('test_ee'); targetSheet.getRange("A3:J").clearContent(); // 仅当过滤后有数据时才写入,避免报错 if (filteredValues.length > 0) { targetSheet.getRange(3, 1, filteredValues.length, filteredValues[0].length).setValues(filteredValues); } }
关键修改说明
- 可配置过滤规则:在
过滤配置区可直接修改filterColumnIndex(比如要过滤D列就改成3)和targetStoreIds(替换为实际需要的ID值),无需改动核心逻辑 - 表头保留逻辑:过滤时自动保留第一行表头,避免数据结构混乱
- 容错处理:添加判断逻辑,确保只有过滤到数据时才执行写入操作,防止因空数据导致的脚本报错
内容的提问来源于stack exchange,提问作者Monika
相关产品推荐
相关产品推荐

