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

按条件将Google Sheet多行导出至多个TXT文件的需求与求助

按A列分组导出行到TXT文件的Google Apps Script实现

你的核心需求是按A列的值分组导出:相同A列值的行合并到同一个TXT,唯一值的行单独生成文件。原代码是逐行生成文件,需要先对数据做分组处理,再批量创建文件。

修改后的代码

var folder = DriveApp.getFolderById('###'); // 替换为你的目标文件夹ID
var files = folder.getFiles();
while (files.hasNext()) files.next().setTrashed(true); // 清空目标文件夹内的旧文件

// 1. 按A列(row[0])对数据进行分组
const groupedData = csvBalanceArray.reduce((groups, row) => {
  const groupKey = row[0]; // 以A列的值作为分组标识
  if (!groups[groupKey]) {
    groups[groupKey] = [];
  }
  groups[groupKey].push(row);
  return groups;
}, {});

// 2. 遍历分组结果,创建对应TXT文件
Object.entries(groupedData).forEach(([key, rows]) => {
  // 若A列值含非法文件名字符,可替换为合法字符,比如:
  // const validFileName = key.replace(/[<>:"/\\|?*]/g, '_');
  const fileContent = rows.map(row => row.join(' ')).join('\n'); // 保持原行内空格拼接,行之间用换行分隔
  folder.createFile(`${key}.txt`, fileContent);
});

关键逻辑说明

  • 分组处理:用reduce方法遍历数组,将A列值相同的行归为同一组,最终得到一个以A列值为键、对应行数组为值的对象。
  • 文件生成:遍历分组后的键值对,每个键对应一个TXT文件,文件内容是该组所有行按原格式拼接后的文本。
  • 可选优化:如果A列值包含Google Drive不允许的文件名字符(如<>:\"/\\|?*),可以用注释里的代码替换为下划线等合法字符,避免创建文件失败。

内容的提问来源于stack exchange,提问作者saashe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:15:53