Я взял этот код у кого-то для обновления ячеек в пакетах для Google Sheets, но он выводит данные в виде строк. Я пытался преобразовать его для отображения новых данных в текущем формате ячейки.
Вот ссылка на документацию по сценарию приложения Google: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/cells
function myFunction() {
var ID = 781321575;
var builder = new Builder('1HnP8F8Gy2Brjh1OCF_DI_EPk6t7ACsnLAJX6kLbErgk')
.setValuesFromOrigin('J7, J8', ID, [1, 2, 3], [4, 5, 6])
.setValuesFromOrigin('J9', ID, ['hey', 'there', 'how', 'are', 'you'])
.setBackgroundColorsFromOrigin('J12', ID, ['#ffffff', '#bb0000'], ['#bb00bb'], ['#00ff00'])
.setBackgroundColorsFromOrigin('J14', ID, ['#ff0000'])
.setBackgroundColorsFromOrigin('J16', ID, ['#ff0000'])
.setBackgroundColorsFromOrigin('J18', ID, ['#ff0000'])
Logger.log(builder);
builder.execute();
}
class Builder {
constructor(id) {
this.spreadsheetId = id;
this.requests = [];
}
setBackgroundColorsFromOrigin(R1, sheetId, ...colors) {
var rows = colors.map((value) => ({
values: value.map(v => ({
userEnteredFormat: {
backgroundColor: {
...getRGBFromHex(v),
alpha: 1
}
}
}))
}));
this.requests.push({
updateCells: {
rows,
fields: 'userEnteredFormat.backgroundColor',
start: {
sheetId,
...getIndexFromR1Notation(R1)
}
}
});
return this;
}
setValuesFromOrigin(R1, sheetId, ...values) {
var rows = values.map((value) => ({
values: value.map(v => ({
userEnteredValue: {
stringValue: v
}
}))
}));
this.requests.push({
updateCells: {
rows,
fields: 'userEnteredValue.stringValue',
start: {
sheetId,
...getIndexFromR1Notation(R1)
}
}
});
return this;
}
execute() {
return Sheets.Spreadsheets.batchUpdate({
requests: this.requests
}, this.spreadsheetId);
}
}
Я относительно новичок в javascript, но вот что я пробовал :
setValuesFromOrigin(R1, sheetId, ...values) {
var rows = values.map((value) => ({
values: value.map(v => ({
userEnteredValue: {
stringValue: v.toString()
},
formattedValue: v,
userEnteredFormat: {
stringValue: v.formattedValue
}))
}));
this.requests.push({
updateCells: {
rows,
fields: 'userEnteredValue.stringValue',
fields: 'userEnteredFormat.stringValue',
start: {
sheetId,
...getIndexFromR1Notation(R1)
}
}
});
return this;
}