Что вы пытаетесь выполнить sh:
- Вы хотите создать новую электронную таблицу с указанными c значениями.
- Вы хотите, чтобы эта электронная таблица создавалась в указанная папка c на Google Диске.
Решение:
Первый шаг к выполнению sh - это понять, почему вы не можете использовать свойство values
в вашем запросе.
Изучив документацию , вы увидите, что запрос должен быть экземпляром Spreadsheet
, и этот тип не содержит значений.
Вы также можете видеть, что нет способа указать, где будет создаваться электронная таблица, поскольку ресурс Spreadsheet
не содержит никаких ссылок на его родительскую папку.
Если мы сломаем если вы действительно хотите сделать три вещи:
- Создать новую электронную таблицу
- Переместить ее в указанную c папку
- Заполнить ее значениями
Примечание. Шаг 1 и 2 можно выполнить одним вызовом API
Создайте новую электронную таблицу:
Измените тело запроса следующим образом:
const createOption = {
resource: {
properties: {
title: 'Ini judul spreadsetnya'
}
}
};
Переместите электронную таблицу в другую папку
Вам потребуется использовать Drive API для перемещения файла.
Это делается путем обновления файла, чтобы иметь другого родителя. В этом случае вы будете использовать вызов file.update
с опцией addParents
, где вы можете добавить разделенный запятыми список parentIds.
Эти parentIds являются идентификаторами папки Ваш файл должен принадлежать. (Да, вы можете иметь его в нескольких местах).
Вы можете извлечь эти через API или через интерфейс:
Вот как должен выглядеть ваш запрос:
const driveMoveOption = {
fileId: "", //You will insert this later
addParents: "<YOUR PARENT ID HERE>",
removeParents: "root" //To remove it from the "MyDrive" section
}
А вот пример того, как его использовать:
sheets.spreadsheets.create(createOption, function (err, response) {
if (err) {
console.error(err);
return;
}
//response contains the `Spreadsheet` resource we want, with it's fileId
driveMoveOption.fileId = response.spreadsheetId; //Set the spreadsheet Id to
drive.files.update(driveMoveOption, function (err, response) {
if (err) {
console.error(err);
return;
}
//response contains the structure of a Files structure: https://developers.google.com/drive/api/v3/reference/files#resource
});
});
Создание электронной таблицы по заданным параметрам. c папка
Если вы используете вместо этого API-интерфейс Drive.files.create, вы можете использовать этот запрос:
{
"mimeType": "application/vnd.google-apps.spreadsheet",
"name": "Test",
"parents": [
"<YOUR PARENT ID HERE>"
]
}
и вызвать его с помощью
const driveCreateAndMoveOption = {
"mimeType": "application/vnd.google-apps.spreadsheet",
"name": "Test",
"parents": [
"<YOUR PARENT ID HERE>"
]
};
drive.files.update(driveCreateAndMoveOption, function (err, response) {
if (err) {
console.error(err);
return;
}
//response contains the structure of a Files structure. Use this to get the file ID for the spreadsheet call.
});
Вставить Ваши пользовательские значения
Запрос на вставку значений в электронную таблицу должен выглядеть примерно так:
const appendOption = {
"spreadsheetId": "", //You will insert this later
"range": "A:A",
"valueInputOption": "USER_ENTERED",
"resource": {
"values": [
[
"a"
]
]
}
}
Чтобы использовать правильный SpreadsheetId
, вам нужно будет запустить этот код после вы создаете его и используете это число.
Это можно сделать так:
sheets.spreadsheets.create(createOption, function (err, response) {
if (err) {
console.error(err);
return;
}
//response contains the `Spreadsheet` resource we want, with it's fileId
appendOption.spreadsheetId = response.spreadsheetId; //Set the spreadsheet Id to insert the values on.
sheets.spreadsheets.values.append(appendOption, function (err, response) {
if (err) {
console.error(err);
return;
}
//response contains the structure detailed on: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append#response-body
});
});