0

我在运行代码时收到了上述异常。

// 此函数假定 CSV 没有带逗号的字段,
// 并去掉所有的双引号


函数 parseCsvResponse(csvString) {
    var retArray = [];

    var strLines = csvString.split(/\n/g);
    var strLineLen = strLines.length;
    for (var i = 0; i < strLineLen; i++) {
        var line = strLines[i];
        如果(行!=''){
            retArray.push(line.replace(/"/g, "").split(/,/));
        }
    }

    返回 retArray;
}

函数 populateSheetWithCSV(sheet, csvUrl, user, pw) {

    // 请求 CSV!
    var resp = UrlFetchApp.fetch(csvUrl, {
        标题:{
            // 使用基本认证
            '授权': '基本' + Utilities.base64Encode(user + ':' + pw, Utilities.Charset.UTF_8)
        }
    });
// parse the response as a CSV
var csvContent = parseCsvResponse(resp.getContentText());

// clear everything in the sheet
sheet.clearContents().clearFormats();

// set the values in the sheet (as efficiently as we know how)
sheet.getRange(1, 1, csvContent.length /* rows */, csvContent[0].length /* columns */).setValues(csvContent);

}

4

2 回答 2

1

正如评论者所建议的那样,这条线看起来像是罪魁祸首:

retArray.push(line.replace(/"/g, "").split(/,/));

你有一个开放的双引号对。

于 2012-06-04T04:02:12.273 回答
0

我会认为是因为这个。

/"/g

你可以把它放在引号中。像这样的东西:

var myregexp =new RegExp('"','g');

问题:几乎一样。明星吗?

http://code.google.com/p/google-apps-script-issues/issues/detail?id=419

于 2012-06-04T04:10:09.707 回答