Рубрики
Без рубрики

Автоматизировать работу ваших листов Google

Многие люди и бизнес используют листы Google для управления важными данными. Будь то инвентарный счет, история расходов или список клиентов, листы Google – это мощный инструмент, который можно использовать для хранения этих данных и намного больше!

Автор оригинала: Travis Ramos.

Многие люди и бизнес используют листы Google для управления важными данными. Будь то инвентарный счет, история расходов или список клиентов, листы Google – это мощный инструмент, который можно использовать для хранения этих данных и намного больше!

Прошли времена пробы, бесчисленные часы вручную вставляем ваши драгоценные данные. С API Google вы можете автоматизировать определенные задачи, которые в противном случае будут стоить вам время и деньги.

В этой статье я научу вас 3 вещи:

  1. Как создать новый лист
  2. Как написать на лист
  3. Как читать с листа

Прежде чем мы начнем, вам нужно включить API Google Pailets. Зайдите в консоль разработчика, нажмите «Библиотека» в меню и найдите API Google Pailets. Нажмите на него и нажмите «Включить». Это даст вам ваши «конфигурации клиента», которые дадут вашему сценарию или приложению возможность использовать API с вашей учетной записью Google. Загрузите эти конфигурации и сохраните файл «Credgancys.json» в рабочий каталог.

После этого вам нужно будет запустить следующую команду NPM, чтобы установить библиотеки:

«NPM установить GoogleAppis @ 39 –save»

Первый шаг, прежде чем каждый сценарий генерирует аутентификацию, которая зависит от объема, которые вы позволяете иметь ваш скрипт. Мы будем давать нашему скрипту возможность создавать, писать и читать с листа, установив наш объем на « » https://www.googleapis.com/auth/spreadsheapshies ‘ Отказ

Аутентификация в начале каждого сценария будет искать файл под названием «Token.json» для авторизации вашего сценария. Если файл не выдыхает, он предложит вам в консоли для авторизации вашего stup и создать файл. Теперь пришло время начать!

Создать новый лист

const fs = require('fs');
const {google} = require('googleapis');
const readline = require('readline-promise').default;

const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';

//authorization
async function authorize(credentials) {
    const { client_secret, client_id, redirect_uris } = credentials.installed;
    const oAuth2Client = new google.auth.OAuth2(
      client_id, client_secret, redirect_uris[0]
    );
  
    try {
      const token = fs.readFileSync(TOKEN_PATH);
      oAuth2Client.setCredentials(JSON.parse(token));
      return oAuth2Client;
    } catch (err) {
      const authorizedClient = await getNewToken(oAuth2Client);
      return authorizedClient;
    }
  };

  async function getNewToken(oAuth2Client) {
    const authUrl = oAuth2Client.generateAuthUrl({
      access_type: 'offline',
      scope: SCOPES,
    });
    console.log('Authorize this app by visiting this url:', authUrl);
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
  
    const code = await rl.questionAsync('Enter the code from that page here: ');
    rl.close();
    const { tokens } = await oAuth2Client.getToken(code);
    oAuth2Client.setCredentials(tokens);
    fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
    console.log('Token stored to', TOKEN_PATH);
    return oAuth2Client;
  };

  async function createSpreadsheet(sheets, title) {
    const resource = {
        properties: {
          title,
        }
      }
      const { data } = await sheets.spreadsheets.create({ resource });
    
      console.log(`Created new spreadsheet with ID: ${data.spreadsheetId}`);
      return data.spreadsheetId;
  }
  
  const main = async () => {
    const content = fs.readFileSync('credentials.json');
    const auth = await authorize(JSON.parse(content));
    const sheets = google.sheets({ version: 'v4', auth });
    const title = "test";

    await createSpreadsheet(sheets, title);
  };

  main();

Это создаст новую электронную таблицу и даст вам удостоверение личности, чтобы связать его.

Писать на лист

Используйте лист из предыдущего скрипта для скрипта ниже.

const fs = require('fs');
const {google} = require('googleapis');
const readline = require('readline-promise').default;

const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';

//authorization
async function authorize(credentials) {
    const { client_secret, client_id, redirect_uris } = credentials.installed;
    const oAuth2Client = new google.auth.OAuth2(
      client_id, client_secret, redirect_uris[0]
    );
  
    try {
      const token = fs.readFileSync(TOKEN_PATH);
      oAuth2Client.setCredentials(JSON.parse(token));
      return oAuth2Client;
    } catch (err) {
      const authorizedClient = await getNewToken(oAuth2Client);
      return authorizedClient;
    }
  };

  async function getNewToken(oAuth2Client) {
    const authUrl = oAuth2Client.generateAuthUrl({
      access_type: 'offline',
      scope: SCOPES,
    });
    console.log('Authorize this app by visiting this url:', authUrl);
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
  
    const code = await rl.questionAsync('Enter the code from that page here: ');
    rl.close();
    const { tokens } = await oAuth2Client.getToken(code);
    oAuth2Client.setCredentials(tokens);
    fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
    console.log('Token stored to', TOKEN_PATH);
    return oAuth2Client;
  };

  async function writeToSheet(sheets, spreadsheetId) {
      const values = [['Name', 'Meals A Day', 'Body Fat Percentage']];
      const resource = {
          values,
      };
      const range = 'A1:C1';
      const valueInputOption = 'USER_ENTERED';

      const { data } = await sheets.spreadsheets.values.update({
        spreadsheetId,
        range,
        resource,
        valueInputOption
      })
      console.log('Updated cells: ' + data.updatedCells);
  }

  const main = async () => {
    const content = fs.readFileSync('credentials.json');
    const auth = await authorize(JSON.parse(content));
    const sheets = google.sheets({ version: 'v4', auth });
    const sheetId = "1UXvLBLbKSUlyQV3A3m-r-lmBoxN2TEUzH6USfc6XF6g";

    await writeToSheet(sheets, sheetId);
  };

  main();

Читать с листа

const fs = require('fs');
const readline = require('readline-promise').default;
const { google } = require('googleapis');

const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';

//authorization
async function authorize(credentials) {
    const { client_secret, client_id, redirect_uris } = credentials.installed;
    const oAuth2Client = new google.auth.OAuth2(
      client_id, client_secret, redirect_uris[0]
    );
  
    try {
      const token = fs.readFileSync(TOKEN_PATH);
      oAuth2Client.setCredentials(JSON.parse(token));
      return oAuth2Client;
    } catch (err) {
      const authorizedClient = await getNewToken(oAuth2Client);
      return authorizedClient;
    }
  };

  async function getNewToken(oAuth2Client) {
    const authUrl = oAuth2Client.generateAuthUrl({
      access_type: 'offline',
      scope: SCOPES,
    });
    console.log('Authorize this app by visiting this url:', authUrl);
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
  
    const code = await rl.questionAsync('Enter the code form that page here: ');
    rl.close();
    const { tokens } = await oAuth2Client.getToken(code);
    oAuth2Client.setCredentials(tokens);
    fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
    console.log('Token stored to', TOKEN_PATH);
    return oAuth2Client;
  };

  async function readSheet(sheets) {
    const ranges = ['Sheet1!A2:B'];
    const { data } = await sheets.spreadsheets.values.batchGet({
        spreadsheetId: '1UXvLBLbKSUlyQV3A3m-r-lmBoxN2TEUzH6USfc6XF6g',
        ranges,
    });
    console.log(data.valueRanges[0].values);
  };

  const main = async () => {
    const content = fs.readFileSync('credentials.json');
    const auth = await authorize(JSON.parse(content));
    const sheets = google.sheets({ version: 'v4', auth });

    await readSheet(sheets)
  };

  main();

Вы должны увидеть результаты, отображаемые в вашей консоли, когда вы написали на свою электронную таблицу.

Вот и все!

Если вы заинтересованы в чтении что-нибудь еще, я написал, отправляйтесь на мой блог Чтобы проверить это!

Я надеюсь, что вы нашли эту статью полезную, теперь иди создайте!