【发布时间】:2019-06-03 20:11:21
【问题描述】:
我正在开发一些代码来使用 Google 应用脚本创建 CSV 文件。我知道如何创建 CSV 文件,但是当字符串值有逗号时我遇到了问题。如果数组元素有逗号,则在创建 CSV 文件时这些元素将被分隔。
我正在编写此代码,因为我想将 CSV 文件上传到 EC 网站,例如 eBay、amazon 等。所以格式是他们固定的。我无法避免在数组元素中使用逗号。
我尝试将“”放在大括号逗号上(例如:“,”),但它根本不起作用。 我也尝试使用不同的分隔符,但也没有用。
我的代码如下:
var folderId = DriveFolderId
var array = [
["title1", "title2", "title3"],
["value1", "value2-1,value2-2", "value3"],
]
for (var i in array) {
array[i] = array[i].join(",");
}
var array = array.join("\n");
var folder = DriveApp.getFolderById(folderId);
var now = Utilities.formatDate(new Date(), "JST", "yyyy_MM_dd_HH_mm_ss");
folder.createFile(now + ".csv", array, "text/csv");
上面的代码可以正常工作,除非数组元素中没有逗号。 如果它们有逗号,则在创建 CSV 文件时将它们分开。 在上面的例子中,它创建了一个像这样的文件:
[标题1],[标题2],[标题3]
[value1],[value2-1],[value2-2],[value3]
我希望它是这样的:
[标题1],[标题2],[标题3]
[value1],[value2-1,value2-2],[value3]
当它执行folder.createFile(now + ".csv", array, "text/csv")时,它毁了我所有的努力。
有人知道如何解决这个问题吗?
【问题讨论】:
-
您需要对特殊字符进行转义。这不是 Google Apps 脚本独有的问题
-
感谢您的评论,tehhowch。我知道我必须逃避一些角色,但我不知道哪些以及如何。