Ich habe diesen Code auf einer Client-Seite HTML, HTML-Tabelle in Array zu exportieren und an Gapi übergeben.Analysieren mehrdimensionaler Arrays in Google-Blatt durch Google Apps Script
function exportGsheet() {
var myTableArray = [];
$("#table tr").each(function() {
var arrayOfThisRow = [];
var tableData = $(this).find('td');
if (tableData.length > 0) {
tableData.each(function() { arrayOfThisRow.push($(this).text()); });
myTableArray.push(arrayOfThisRow);
}
});
var request = {
'function': 'setData',
'parameters': myTableArray,
'devMode': true // Optional.
};
var op = gapi.client.request({
'root': 'https://script.googleapis.com',
'path': 'v1/scripts/' + SCRIPT_ID + ':run',
'method': 'POST',
'body': request
});
op.execute();
window.open(gsheet);
// alert(myTableArray)
}
Und dieser Code in Google Apps Script (als API ausführbaren veröffentlicht) dieses Arrays zu analysieren und die Zellen in google Blatt füllen.
function setData(e) {
var doc = SpreadsheetApp.openById(DOC_ID);
var sheet = doc.getSheetByName(SHEET_NAME);
var row = [];
for(var i = 0; i < e.length; i++) {
row.push(e[i]);
}
sheet.getRange(5, 2, 1, row.length).setValues([row]);
}
Die Arrays wie folgt aussieht
[["John","10","Lakeview","12345"],["Jill","8","Tramble","12346"],["James","9","Paramount","12348"]]
Das Problem hier ist, dass die Google Apps Script nur die erste Zeile auffüllt und ignoriert den Rest der Arrays. Bedeutet, es füllt ["John","10","Lakeview","12345"]
Array in die erste Zeile und ignoriert alle anderen Arrays. Ich hatte console.log() im Client Javascript aktiviert und ich konnte sehen, dass der Anfragetext alle Arrays enthält, wenn es an gapi übergeben wird. Unten ist die console.log() von 'op' Variable oben.
body : "{"function":"setData","parameters":[["John","10","Lakeview","12345"],["Jill","8","Tramble","12346"],["James","9","Paramount","12348"]],"devMode":true}"
Versuchen, dies für mehrere Stunden zu debuggen. Kann mir bitte jemand helfen.
Funktioniert wie ein Charme .. Danke eine Tonne Sandy .. PLZ erinnern, JSON.stringify() in Quell-HTML und JSON.parse() in Apps-Skript hinzuzufügen. Parsing Arrays funktionieren nicht direkt. – Maddy