Как получить таблицу Google sheets как массив?

Ссылка скопирована
1 ответ

есть функция 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. Последнее и интересует.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

Для получения данных из 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"
}

"require": { "google/apiclient": "^2.0" }

3. Создайте файл index.php и подключите библиотеку Google API Client:

require_once 'vendor/autoload.php';

require_once 'vendor/autoload.php';

4. Авторизуйтесь в Google Sheets API и получите данные из таблицы. Ниже приведен пример кода для получения данных из таблицы и вывода их в виде массива:

$client = new Google_Client();
$client->setApplicationName('Google Sheets API PHP');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
$client->setAuthConfig('credentials.json');
$client->setAccessType('offline');

$service = new Google_Service_Sheets($client);
$spreadsheetId = 'YOUR_SPREADSHEET_ID';
$range = 'Sheet1!A1:C3';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();

if (empty($values)) {
print "No data found.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно