我想使用以;
分隔的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);
}
我只想使用;
进行分隔,但无法实现。 GAS还会继续分隔逗号,这会破坏我的程序。
,
,为什么用;
隔开。以下是日志(在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]]
答案 0 :(得分:1)
当显示对象数据时,这是Apps脚本Logger
的失败。
使用此代码:
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 Logging功能。
您应该查看Apps脚本指南以进行日志记录:
https://developers.google.com/apps-script/guides/logging
值得注意的是,要查看Stackdriver中的日志,您必须能够访问脚本的Google Cloud Platform项目。