- Вы хотите создать новую электронную таблицу с
{"defaultFormat": {"verticalAlignment": "TOP"}}
с помощью API Sheets. - Вы хотите добиться этого с помощью googleapis с Node.js.
- Вы уже смогли получить и поместить значения для Spreadsheet с помощью API Sheets.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Проблема и обходной путь:
Я думаю, что причиной вашей проблемы может быть то, что defaultFormat
в SpreadsheetProperties - This field is read-only.
. Ref
Чтобы создать новую электронную таблицу с использованием {"verticalAlignment": "TOP"}
, как насчет следующих обходных путей?
Шаблон 1:
В этом шаблоне "verticalAlignment": "TOP"
используется для листа с использованием метода «создать». В этом случае каждая ячейка должна быть установлена с { userEnteredFormat: { verticalAlignment: "TOP" } }
, как показано ниже.
Модифицированный скрипт:
return new Promise((resolve, reject) => {
const sheets = google.sheets({ version: "v4", auth });
let rowData = [];
for (let r = 0; r < 1000; r++) {
let row = [];
for (let c = 0; c < 26; c++) {
row[c] = { userEnteredFormat: { verticalAlignment: "TOP" } };
}
rowData.push({ values: row });
}
const request = {
resource: {
properties: { title: "This is the sheet title" },
sheets: [
{
properties: { title: "The first tab" },
data: { rowData: rowData }
}
]
}
};
sheets.spreadsheets.create(request, (err, response) => {
if (err) {
return reject(err);
}
resolve(response.data);
});
});
- В этом случае лист по умолчанию имеет 1000 строк и 26 столбцов. Итак, я использовал выше для циклов.
Шаблон 2:
В этом шаблоне сначала создается новая электронная таблица, а затем "verticalAlignment": "TOP"
задается методом " batchUpdate ".
Модифицированный скрипт:
return new Promise((resolve, reject) => {
const sheets = google.sheets({ version: "v4", auth });
const request = {
resource: {
properties: { title: "This is the sheet title" },
sheets: [{ properties: { title: "The first tab" } }]
}
};
sheets.spreadsheets.create(request, (err, response) => {
if (err) {
return reject(err);
}
sheets.spreadsheets.batchUpdate(
{
spreadsheetId: response.data.spreadsheetId,
resource: {
requests: [
{
repeatCell: {
range: {
sheetId: response.data.sheets[0].properties.sheetId
},
cell: {
userEnteredFormat: {
verticalAlignment: "TOP"
}
},
fields: "userEnteredFormat.verticalAlignment"
}
}
]
}
},
function(err, response) {
if (err) {
return reject(err);
}
resolve(response.data);
}
);
});
});
Ссылки:
Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.