Google Sheets导出CSV出现三重双引号,如何导出单元格仅单对首尾双引号的文件
Google Sheets导出CSV出现三重双引号的解决方法
问题原因
你的Google Sheets单元格内本身已经自带了首尾双引号,Google Sheets导出CSV时会自动执行两个规则:
- 对单元格内容中存在的双引号做转义,将1个双引号替换为2个连续双引号
- 为包含特殊字符的单元格自动包裹一层首尾双引号
两者叠加后,原本单元格内的"name"就会被转换为"""name""",出现三重双引号的问题。
解决方法
方案一:清理原表格内容后导出(推荐单次导出场景)
- 选中所有带数据的单元格,按
Ctrl+H(Mac系统按Cmd+H)调出查找替换工具 - 查找内容输入
",替换为内容留空,点击「全部替换」,清除所有单元格内自带的双引号 - 正常执行「文件 > 下载 > 逗号分隔值(.csv)」操作即可,导出的文件会自动为每个单元格包裹1个双引号,符合第三方导入要求。
方案二:直接处理已导出的CSV文件
如果不想修改原表格内容,可直接对导出的三重引号文件做批量修正:
- 用任意文本编辑器打开导出的CSV文件
- 全局查找
""",统一替换为"即可,操作前建议备份原文件避免数据丢失。
方案三:自定义脚本导出(适合高频导出场景)
如果需要频繁导出该格式的CSV,可使用Google Apps Script实现一键导出:
- 打开目标表格,点击顶部菜单「扩展程序 > Apps Script」进入脚本编辑器
- 清空原有代码,粘贴以下代码后保存运行,导出的CSV会直接存入你的Google Drive根目录:
function exportStandardCSV() { const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const allData = activeSheet.getDataRange().getValues(); // 遍历每行每个单元格,包裹单引号并清理内容中自带的引号 const csvContent = allData.map(row => row.map(cell => `"${String(cell).replace(/"/g, '')}"`).join(',') ).join('\n'); const csvBlob = Utilities.newBlob(csvContent, 'text/csv', '标准格式导出.csv'); DriveApp.createFile(csvBlob); SpreadsheetApp.getUi().alert('导出完成,文件已存入Google Drive根目录'); }
内容的提问来源于stack exchange,提问作者Tim B
相关产品推荐
相关产品推荐

