Ziehe CSV zu Google Sheets mit grundlegender Authentifizierung

Ich muss eine CSV von einer URL abrufen, die grundlegende Authentifizierung erfordert.

Ich habe diesen Code gefunden, der funktioniert, abgesehen vom Parsen der CSV, Löschen und Setzen der Zellen. Ich denke, es gibt ein paar Fehler, da es sich um alten Code handelt, wie z. B.clear.contents() sollte seinclear.content().

Und selbst mit der harten Codierung der Daten, in denen sich Blätter befinden, habe ich immer noch Schwierigkeiten, sie zum Laufen zu bringen. Hat jemand eine Lösung gefunden?:

// this function assumes the CSV has no fields with commas,
// and strips out all the double quotes
function 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];
        if (line != '') {
            retArray.push(line.replace(/"/g, "").split(/,/));
        }
    }

    return retArray;
}

function populateSheetWithCSV(sheet, csvUrl, user, pw) {

    // request the CSV!
    var resp = UrlFetchApp.fetch(csvUrl, {
        headers: {
            // use basic auth
            'Authorization': 'Basic ' + 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);

}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage