【发布时间】:2020-06-10 09:55:15
【问题描述】:
我正在使用 firebase 云功能在现有电子表格中添加和编辑数据。
我对工作表执行的第一个操作是添加包含列名称的第一行。 之后,我将第一个插入行的格式更改为粗体。 这成功了,但随后,我附加到工作表的每一行数据也显示为粗体。
这是我的代码的 sn-p:
header = [/* array of the columns names */];
await appendPromise({
spreadsheetId: spreadsheetID,
range: 'Sheet1',
valueInputOption: 'USER_ENTERED',
insertDataOption: 'INSERT_ROWS',
resource: {
values: [header],
},
});
return updateBatchPromise(spreadsheetID,
{"requests": [
{"repeatCell": {
"range": {
"sheetId": 0,
"startRowIndex": 0,
"endRowIndex": 1
},
"cell": {
"userEnteredFormat": {
"textFormat": {
"bold": true
}
}
},
"fields": "userEnteredFormat.textFormat.bold"
}}
]}
)
/*...... HELPER FUNCTIONS........*/
function appendPromise(requestWithoutAuth) {
return new Promise((resolve, reject) => {
google.auth.getClient({
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
}).then((client) => {
const sheets = google.sheets('v4');
const request = requestWithoutAuth;
request.auth = client;
return sheets.spreadsheets.values.append(request, (err, response) => {
if (err) {
console.log(`The API returned an error: ${err}`);
return reject(err);
}
return resolve(response.data);
});
});
});
}
function updateBatchPromise(spreadsheetId, res) {
return new Promise((resolve, reject) => {
google.auth.getClient({
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
}).then((client) => {
const sheets = google.sheets('v4');
return sheets.spreadsheets.batchUpdate({
auth: client,
spreadsheetId: spreadsheetId,
resource: res
}, (err, response) => {
if (err) {
console.log(`The API returned an error: ${err}`);
return reject(err);
}
return resolve(response.data);
});
});
});
}
【问题讨论】:
标签: javascript google-sheets-api