如何使用Google Apps Script将Google Sheets导出为|分隔的CSV文件
管道分隔符CSV导出实现方案
问题根因
你当前配置的pasteDataRequest.delimiter是粘贴外部数据到Google Sheets时识别内容拆分的参数,和CSV导出的输出分隔符逻辑完全无关,因此不会生效。
可用实现代码
直接手动遍历表格内容拼接即可,内置了特殊字符转义逻辑,避免内容包含|、引号、换行时格式错乱:
function exportPipeDelimitedCSV() { const activeSheet = SpreadsheetApp.getActiveSheet(); // 读取整张表的有效数据 const sheetData = activeSheet.getDataRange().getValues(); // 逐行逐单元格处理内容,用|拼接 const outputContent = sheetData.map(row => { return row.map(cell => { const cellStr = String(cell); // 特殊内容用双引号包裹,内容内的双引号转义为两个双引号 if (cellStr.includes('|') || cellStr.includes('"') || cellStr.includes('\n')) { return `"${cellStr.replace(/"/g, '""')}"`; } return cellStr; }).join('|'); }).join('\n'); // 方式1:导出文件到Google Drive DriveApp.createFile(`${activeSheet.getName()}_管道分隔.csv`, outputContent, MimeType.CSV); // 方式2:如果需要弹窗获取下载链接,取消注释下方代码 // const exportFile = DriveApp.createFile(`${activeSheet.getName()}_管道分隔.csv`, outputContent, MimeType.CSV); // SpreadsheetApp.getUi().alert(`导出完成,文件链接:${exportFile.getUrl()}`); }
内容的提问来源于stack exchange,提问作者Simon GIS
相关产品推荐
相关产品推荐

