Преобразование JSON в Google Таблицы с помощью Node.js: подробное руководство

В этой статье мы рассмотрим различные методы преобразования данных JSON в Google Таблицы с помощью Node.js. Google Таблицы — мощный инструмент для организации и анализа данных, а Node.js — удобная платформа для программной работы с данными JSON. Мы рассмотрим различные подходы и предоставим примеры кода, которые помогут вам начать работу.

Метод 1: API Google Таблиц
Один из наиболее прямых способов преобразования JSON в Google Таблицы — использование API Google Таблиц. Этот метод требует настройки аутентификации и выполнения вызовов API для создания и заполнения электронной таблицы. Вот пример использования пакета googleapis:

const { google } = require('googleapis');
const credentials = require('./credentials.json');
async function convertJSONToSheet(jsonData, spreadsheetId, sheetName) {
  const auth = new google.auth.GoogleAuth({
    credentials,
    scopes: ['https://www.googleapis.com/auth/spreadsheets'],
  });
  const sheets = google.sheets({ version: 'v4', auth });
  const values = Object.values(jsonData);
  await sheets.spreadsheets.values.append({
    spreadsheetId,
    range: `${sheetName}!A1`,
    valueInputOption: 'USER_ENTERED',
    resource: { values },
  });
}
// Usage
const jsonData = {
  name: 'John',
  age: 25,
  email: 'john@example.com',
};
const spreadsheetId = 'your-spreadsheet-id';
const sheetName = 'Sheet1';
convertJSONToSheet(jsonData, spreadsheetId, sheetName);

Метод 2: преобразование CSV
Другой подход – преобразовать данные JSON в формат CSV и затем импортировать их в Google Таблицы. Этот метод может быть полезен, если у вас сложные структуры JSON или вы предпочитаете работать с файлами CSV. Вот пример использования пакетов json2csvи google-spreadsheet:

const fs = require('fs');
const { promisify } = require('util');
const json2csv = require('json2csv');
const { GoogleSpreadsheet } = require('google-spreadsheet');
const credentials = require('./credentials.json');
async function convertJSONToCSV(jsonData, csvPath) {
  const csvData = json2csv.parse(jsonData);
  await promisify(fs.writeFile)(csvPath, csvData);
}
async function importCSVToSheet(csvPath, spreadsheetId, sheetIndex) {
  const doc = new GoogleSpreadsheet(spreadsheetId);
  await doc.useServiceAccountAuth(credentials);
  await doc.loadInfo();
  const sheet = doc.sheetsByIndex[sheetIndex];
  await sheet.clear();
  await sheet.setCSVUrl(csvPath);
  await sheet.updateProperties({ title: 'Sheet1' });
  await sheet.loadCells();
  console.log('CSV imported successfully to Google Sheets.');
}
// Usage
const jsonData = [
  { name: 'John', age: 25, email: 'john@example.com' },
  { name: 'Jane', age: 30, email: 'jane@example.com' },
];
const csvPath = 'data.csv';
const spreadsheetId = 'your-spreadsheet-id';
const sheetIndex = 0;
convertJSONToCSV(jsonData, csvPath)
  .then(() => importCSVToSheet(csvPath, spreadsheetId, sheetIndex));

Метод 3: сторонние библиотеки
Существует несколько сторонних библиотек, которые упрощают процесс преобразования JSON в Google Таблицы. Одной из таких библиотек является json-google-sheets, которая обеспечивает простой способ создания или обновления таблицы Google на основе данных JSON. Вы можете установить его с помощью npm:

npm install json-google-sheets

Пример использования:

const { JsonGoogleSheets } = require('json-google-sheets');
const jsonData = [
  { name: 'John', age: 25, email: 'john@example.com' },
  { name: 'Jane', age: 30, email: 'jane@example.com' },
];
const spreadsheetId = 'your-spreadsheet-id';
const sheetName = 'Sheet1';
const jsonGoogleSheets = new JsonGoogleSheets(spreadsheetId);
jsonGoogleSheets.write(jsonData, sheetName)
  .then(() => console.log('JSON data successfully written to Google Sheets.'))
  .catch((error) => console.error('Error:', error));

В этой статье мы рассмотрели различные методы преобразования данных JSON в Google Таблицы с помощью Node.js. Мы рассмотрели такие подходы, как использование API Google Таблиц, преобразование JSON в CSV и использование сторонних библиотек, таких как json-google-sheets. В зависимости от ваших требований и предпочтений вы можете выбрать метод, который наилучшим образом соответствует вашим потребностям. Имея в своем распоряжении эти методы, вы можете эффективно передавать данные JSON в GoogleSheets и манипулировать ими. Независимо от того, предпочитаете ли вы работать напрямую с API Google Таблиц или использовать преобразования CSV, Node.js предоставляет гибкие возможности для интеграции данных JSON в ваши электронные таблицы.