Как получить таблицу Google sheets как массив?
есть функция doSheet для работы с гугл таблицами
const { google } = require("googleapis"); // function doSheet(file, sheetId, keyMass, fun) { const auth = new google.auth.GoogleAuth({ keyFile: file, scopes: "https://www.googleapis.com/auth/spreadsheets", }); // (async () => { const client = await auth.getClient(); // const googleSheets = google.sheets({ version: "v4", auth: client }); // const spreadsheetId = sheetId; // const metaData = await googleSheets.spreadsheets.get({ auth, spreadsheetId, }); // const data = { auth, spreadsheetId, valueInputOption: "USER_ENTERED", resource: { values: keyMass.change, }, } // if(keyMass.append) { data['range'] = keyMass.append; // const append = await googleSheets.spreadsheets.values.append(data); // fun(append); } else if(keyMass.values) { data['range'] = keyMass.values; // delete data.valueInputOption; delete data.resource; // const values = await googleSheets.spreadsheets.values.get(data); // fun(values); } else if(keyMass.update) { data['range'] = keyMass.update; // const update = await googleSheets.spreadsheets.values.update(data); // fun(update); } })(); } // |
const { google } = require("googleapis"); // function doSheet(file, sheetId, keyMass, fun) { const auth = new google.auth.GoogleAuth({ keyFile: file, scopes: "https://www.googleapis.com/auth/spreadsheets", }); // (async () => { const client = await auth.getClient(); // const googleSheets = google.sheets({ version: "v4", auth: client }); // const spreadsheetId = sheetId; // const metaData = await googleSheets.spreadsheets.get({ auth, spreadsheetId, }); // const data = { auth, spreadsheetId, valueInputOption: "USER_ENTERED", resource: { values: keyMass.change, }, } // if(keyMass.append) { data['range'] = keyMass.append; // const append = await googleSheets.spreadsheets.values.append(data); // fun(append); } else if(keyMass.values) { data['range'] = keyMass.values; // delete data.valueInputOption; delete data.resource; // const values = await googleSheets.spreadsheets.values.get(data); // fun(values); } else if(keyMass.update) { data['range'] = keyMass.update; // const update = await googleSheets.spreadsheets.values.update(data); // fun(update); } })(); } //
хочу воспользоваться параметром values для получения таблицы и сохранить его в массив для использования за пределами функции, как это сделать ?
doSheet('sheets.json', 'id', {values: 'list1'}, (data) => { console.log(data.data.values) }) |
doSheet('sheets.json', 'id', {values: 'list1'}, (data) => { console.log(data.data.values) })
Дополнительно:
вроде бы так должно получиться:
- console.log(data.data.values) + console.log(data.values) |
- console.log(data.data.values) + console.log(data.values)
Метод spreadsheets.values/get возвращает объект ValueRange со свойствами range, majorDimension и values. Последнее и интересует.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для получения данных из Google Sheets в виде массива вам потребуется использовать Google Sheets API. Вот пример того, как это можно сделать с помощью языка программирования PHP:
1. Начните с создания проекта в Google Cloud Console и включения Google Sheets API для этого проекта.
2. Установите библиотеку Google API Client для PHP с помощью Composer, добавив зависимость в ваш файл composer.json:
"require": { "google/apiclient": "^2.0" }
3. Создайте файл index.php и подключите библиотеку Google API Client:
require_once 'vendor/autoload.php';
4. Авторизуйтесь в Google Sheets API и получите данные из таблицы. Ниже приведен пример кода для получения данных из таблицы и вывода их в виде массива: