Der Versuch, UpdateCellsRequest zu verwenden, um die Formatierung eines Zellenbereichs zu aktualisieren, aktualisiert jedoch nur die erste Zelle im Bereich.UpdateCellsRequest - Bereich verhält sich nicht wie erwartet
let fixFormats =() => {
return new Promise((resolve, reject) => {
var sheets = google.sheets('v4');
var options = {
auth: auth,
spreadsheetId: spreadsheetId,
resource: {
requests: [{
updateCells: {
range: {
sheetId: 0,
startColumnIndex: 0,
endColumnIndex: 2,
},
rows: [{
values: {
userEnteredFormat: {
numberFormat: {
type: "CURRENCY",
pattern: "$#,##0.00"
}
}
}
}],
fields: "userEnteredFormat.numberFormat",
}
}]
}
}
sheets.spreadsheets.batchUpdate(options, (err, res) => {
if (err) {
reject(err);
} else {
resolve(res);
console.log(res);
}
});
});
}
Laut this post sollte es möglich sein. Ich habe die Referenzdokumentation gelesen und überprüft, ob meine Anfrage richtig formatiert ist. Mit besonderer Aufmerksamkeit darauf, wie range definiert ist.
Edit: Mehr verwirrende Verhalten von der startColumnIndex (einschließlich) und endColumnIndex (Exclusive) ..
Während sheetId: 0, startColumnIndex: 0, endColumnIndex: 2 Nur Zelle A1 beispielsweise aktualisiert ... Während Blatt-ID: 0, StartColumnIndex: 0, EndColumnIndex: 3 Hat das gleiche.
ABER ... wenn Während sheetId: 0, startColumnIndex: 1, endColumnIndex: 2 Dann nur Spalte B (colIndex: 1) aktualisiert wird ...
Ist das ein Bug oder bin ich etwas fehlt?
Edit: Ausgabe auf Anfrage ... nicht sicher, dass dies jedoch die richtige Antwort zeigt.
{ spreadsheetId: '<mysheet>',
replies: [ {} ],
updatedSpreadsheet:
{ spreadsheetId: '<mysheet>',
properties:
{ title: 'OLR',
locale: 'en_US',
autoRecalc: 'ON_CHANGE',
timeZone: 'America/Los_Angeles',
defaultFormat: [Object] },
sheets: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
namedRanges: [ [Object] ],
spreadsheetUrl: 'https://docs.google.com/a/company.com/spreadsheets/d/<mysheet>/edit' } }
Wenn ich die Antwort JSON.stringify es im Bereich für jede Zelle Formatierung ergibt es scheint, die eine Menge von Zellen ist. Von 3 ausgewählten Spalten wird jedoch die erste Zelle in der ersten Spalte aktualisiert, aber der Rest bleibt unverändert.
Können Sie Ihre Protokolle dafür teilen? –
Aktualisierter Hauptpost, zu lang für einen Kommentar. – Martin