UpdateCellsRequestを使用してセル範囲の書式を更新しようとしましたが、範囲内の最初のセルのみを更新しています。UpdateCellsRequest - 期待どおりに動作しない範囲
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);
}
});
});
}
this postによると、可能である必要があります。私はリファレンスドキュメントを見て、リクエストが正しくフォーマットされていることを確認しました。 rangeの定義方法に特に注意してください。
編集:(包括的)startColumnIndexとendColumnIndex(独占)からのより多くの混乱を招く行動..
sheetId中:0、startColumnIndex:0は、endColumnIndex:2 のみ ながら...例えば、セルA1を更新sheetId:0、startColumnIndex:0、endColumnIndex:3 同じですか。 0、startColumnIndex:1、endColumnIndex:2 が続いてのみ、列B(colIndex:1)
しかし... sheetIdものの場合
更新されます... が、これはバグですか、私は何かが足りないのですか?編集:リクエストによる出力...正しいレスポンスが表示されているかどうかわかりません。
{ 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' } }
私JSON.stringifyは、それが与える応答は、範囲内のすべてのセルの書式場合には、細胞がたくさんある、と思われます。それでも、選択された3つの列のうち、最初の列の最初のセルは更新されますが、残りは変更されません。
ログをこの場所で共有できますか? –
メインポストを更新しました。コメントが長すぎます。 – Martin