Google Sheets脚本修改:替换逗号并生成双CSV文件
Google Sheets CSV导出脚本修改方案
完整修改后的脚本
function exportTwoCSVs() { // 获取当前工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 定义要导出的单元格范围(可根据需求修改) const range = sheet.getDataRange(); const values = range.getValues(); // 处理数据:将所有逗号替换为# const processedValues = values.map(row => row.map(cell => { // 确保单元格值是字符串,避免数字等类型报错 return typeof cell === 'string' ? cell.replace(/,/g, '#') : cell; }) ); // 转换为CSV格式字符串 const csvContent = processedValues.map(row => row.map(cell => `"${cell}"`).join(',') ).join('\n'); // 获取工作表所在的目录 const parentFolder = DriveApp.getFileById(sheet.getParent().getId()).getParents().next(); // 生成第一个CSV文件(可自定义文件名) const fileName1 = "导出数据_版本1.csv"; parentFolder.createFile(fileName1, csvContent, MimeType.CSV); // 生成第二个CSV文件(可自定义文件名) const fileName2 = "导出数据_版本2.csv"; parentFolder.createFile(fileName2, csvContent, MimeType.CSV); // 提示导出完成 SpreadsheetApp.getUi().alert("两个CSV文件已成功导出至工作表所在目录!"); }
关键修改说明
- 替换单元格内逗号为#:通过双层
map遍历所有单元格值,使用replace(/,/g, '#')全局替换字符串中的逗号为#,同时判断单元格类型,避免非字符串值(如数字、日期)出现报错。 - 生成两个不同命名的CSV:直接定义两个不同的文件名(
fileName1和fileName2),调用createFile方法分别生成文件。如果需要第二个文件使用不同的数据范围或处理规则,可单独调整对应的数据处理逻辑。
使用提示
将上述脚本替换原有的导出脚本后,重新绑定工作表按钮到exportTwoCSVs函数即可,点击按钮就能生成两个指定名称的CSV文件。
内容的提问来源于stack exchange,提问作者Tyrone Hirt
相关产品推荐
相关产品推荐

