首页 > 解决方案 > 无法从附件中的双引号解析工作表中的文本错误

问题描述

我在工作表中运行一个应用程序脚本,它通常将 Gmail 的附件带入谷歌工作表。它大部分时间都有效,但是当数据包含双引号时,它会产生解析错误

我的源数据是这样的数千行:

",05/02/2019,3:13,151:22,5:30,08:11,Enroute,C000003251,219688X01232019,BIN11,,Item1,08:11,0:05,,,0:00
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:17,OnSite,C000003251,219688X01232019,BIN11,,Item1,,,08:17,0:16,0:30
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:34,Complete,C000003251,219688X01232019,BIN11,,Item1,,,,,0:00
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:42,Enroute,C000003252,219689X01232019,BIN11,,Item1,08:42,0:00,,,0:00
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:42,OnSite,C000003252,219689X01232019,BIN11,,Item1,,,08:42,0:14,0:30
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:56,Complete,C000003252,219689X01232019,BIN11,,Item1,,,,,0:00
Worker2,34:51,869:25,110:00,"Completed: 168
Suspended: 43
Skipped: 41
",05/02/2019,3:13,151:22,5:30,08:57,Enroute,C000003253,219690X01232019,BIN11,,Item1,08:57,0:05,,,0:00

  attachment.setContentTypeFromExtension();  
  if (attachment.getContentType() === "text/csv") {

    var sheet =   
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Month1");
    var csvData = Utilities.parseCsv(attachment.getDataAsString(), ","); 

    sheet.clearContents().clearFormats();
    sheet.getRange(1, 1, csvData.length, 

csvData[0].length).setValues(csvData);
}

我收到此错误:“无法解析文本”我似乎无法弄清楚如何忽略或删除源数据中的双引号

提前致谢!

标签: regexparsinggoogle-sheetsgoogle-sheets-formulaarray-formulas

解决方案


您可以使用这些公式中的任何一个从数据集中删除所有双引号

=ARRAYFORMULA(REGEXREPLACE(A1:A, """", ""))

=ARRAYFORMULA(SUBSTITUTE(A1:A, """", ""))

或者,如果这是您可以使用CTRL+H并完全删除它们的选项。


推荐阅读