我基于this one创建了一个脚本,该脚本从Gmail中获取了CSV附件,然后将其粘贴到Google表格中,当我尝试在新表格上再次使用该脚本时,出现了错误:>
异常:无法将','转换为char。 (第22行,文件“代码”)
代码行:
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ',');
我觉得很奇怪,我在其他脚本中有完全相同的代码行,而且它们可以正常工作。我什至尝试从工作脚本中复制/粘贴代码行。
function importCSVFromGmail() {
var threads = GmailApp.search("redacted");
var message = threads[0].getMessages().pop();
var attachment = message.getAttachments()[0];
if (attachment != null) {
var attachName = attachment.getName();
// Is the attachment a CSV file
if (attachName.substring(attachName.length-4) === ".csv") {
var id = "redacted";
var name = "Data Sheet";
var sheet = SpreadsheetApp.openById(id);
var tab = sheet.getSheetByName(name);
// Clear the content of the sheet
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
tab.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
}
}
任何帮助将不胜感激,我不知道为什么我只在新脚本中得到错误。
答案 0 :(得分:1)
就像@TheMaster所建议的那样,您应该从此更改代码行
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
对此
var csvData = Utilities.parseCsv(attachment.getDataAsString());
您还可以了解有关.parseCsv()
函数here的更多信息。
答案 1 :(得分:0)
我认为删除参数不是最佳解决方案。
这是Google的定义: parseCsv(csv,定界符)
这是我的解决方案:
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ','.charCodeAt(0));
注意:删除示例中的参数可能没有区别,因为','是此函数中的默认分隔符。在这种情况下,您可能需要另一个分隔符,例如';'