首页 > 解决方案 > Utilities.parseCsv(csv, ";") 也以逗号分隔

问题描述

我想使用由;. 在某些领域,我们有逗号,但没关系。

示例行如下(注意一列中有逗号):

01.02.2018;01.02.2018;"SEPA-Dauerauftrag an";Maier, Herbert;RINP Dauerauftrag Miete Kräpelinstr. 61;DE45700100800225067803;PBNKDEFFXXX;;;;;;;;;-900,00;;EUR

我使用的 Google Apps 脚本代码如下;

function importCSVFromGoogleDrive() {
  var ss = SpreadsheetApp.openById('<wb id>');
  var outputSheet = ss.getSheetByName('import');

  var fileIterator = DriveApp.getFilesByName("Kontoumsaetze_220_320895600_20180728_155842_DEV.csv");
  var csv = fileIterator.next().getBlob().getDataAsString('ISO-8859-1');
  Logger.log(csv);
  var csvData = Utilities.parseCsv(csv, ";");
  Logger.log("-------------");
  Logger.log(csvData);
}

我只想分开 using ;,但我无法实现。GAS 也不断分隔逗号,这破坏了我的程序。

  1. ,如果我告诉它,为什么它会分开;
  2. 我该如何解决这个问题?

以下是日志(它使用逗号分隔, in Mayer, Herber):

[18-07-29 18:42:22:922 CEST] 01.02.2018;01.02.2018;"SEPA-Dauerauftrag an";Maier, Herbert;RINP Dauerauftrag Miete Kräpelinstr. 61;DE45700100800225067803;PBNKDEFFXXX;;;;;;;;;-900,00;;EUR
[18-07-29 18:42:22:923 CEST] -------------
[18-07-29 18:42:22:924 CEST] [[01.02.2018, 01.02.2018, SEPA-Dauerauftrag an, Maier, Herbert, RINP Dauerauftrag Miete Kräpelinstr. 61, DE45700100800225067803, PBNKDEFFXXX, , , , , , , , , -900,00, , EUR]]

标签: csvparsinggoogle-apps-script

解决方案


Logger在显示对象数据时,这是 Apps 脚本的故障。

使用此代码:

function csvParseSemiOnly() {
  var csv = '01.02.2018;01.02.2018;"SEPA-Dauerauftrag an";Maier, Herbert;RINP Dauerauftrag Miete Kräpelinstr. 61;DE45700100800225067803;PBNKDEFFXXX;;;;;;;;;-900,00;;EUR';
  var csvData = Utilities.parseCsv(csv, ";");
  console.log({message: "Parsed input", input: csv, output: csvData});
  Logger.log(csvData[0][3]);
}

我得到这个结果:

在此处输入图像描述 在此处输入图像描述

一般来说,如果您需要检查对象(尤其是嵌套对象)或查看最近脚本执行以外的日志活动,我建议您使用 Stackdriver 日志记录功能。

您应该查看有关日志记录的 Apps 脚本指南:
https ://developers.google.com/apps-script/guides/logging

值得注意的是,要查看 Stackdriver 中的日志,您必须能够访问脚本的 Google Cloud Platform 项目。


推荐阅读