※社内専用

sheets-api

スプレッドシート操作

Google Sheets API

スプレッドシートの値を取得したり追加できたりする、APIです。
https://developers.google.com/sheets/guides/concepts?hl=ja

sheets-api

nodeモジュールsheets-apiを使って
https://www.npmjs.com/package/sheets-api 値取得まで行いたいと思います。

サーバー移管プロジェクト

こちらでガッツリ使っているようです。
聞きたいことがあれば山口さんまで。 sheets-apiについて伺いました。

準備

  • ・テスト用にスプレッドシートを用意。
  • ・シート名、 セルに適当に名前、値をつける
     B2に「てすと」と入力しました。シート名は「test」にしました。
  • https://developers.google.com/sheets/api/quickstart/nodejs
    Step 1: Turn on the Google Sheets APIを実行して
     jsonファイルをダウンロードし、client_secret.jsonにリネームする。

実践

任意のディレクトリを作る。

sheets-api
C:\code md sheets-api
C:\code cd sheets-api

package.jsonを用意する。

C:\code\sheets-api npm init
入力を求められるレスポンスがありますが、とりあえずEnterを押していけば大丈夫です。
Press ^C at any time to quit.
name: (sheets-api)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to C:\code\sheets-api\package.json:
{
  "name": "sheets-api",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Is this ok? (yes)
package.jsonがあるはずです。

sheets-apiをインストール

npm i sheets-api --save
--saveによってpackage.jsonに記述されます。

app.jsを用意

const  SheetsAPI  =  require('sheets-api');
const  sheets  =  new  SheetsAPI();

const  SPREADSHEET_ID  =  '作成したスプレッドシートのid';
const  SPREADSHEET_NAME  =  '対象のシート名';

let  payload  = {
    spreadsheetId:  SPREADSHEET_ID,
    range:  `${SPREADSHEET_NAME}!B2`
}

sheets.authorize()

    .then(auth  =>  sheets.values('get', auth, payload))

    .then(response  => {
        console.log(response.response);
    })

    .catch(e  =>  console.error(e))

作成したスプレッドシートのid

例)https://docs.google.com/spreadsheets/d/1qpyC0XzvTcKT6EISywvqESX3A0MwQoFDE8p-Bll4hps/edit#gid=0
の部分。

client_secret.json

準備のとき用意したclient_secret.jsonをsheets-apiディレクトリ以下に置く。

実行

C:\code\sheets-api node app.js
以下のようにレスポンスがきました。
{ range: 'test!B2',
  majorDimension: 'ROWS',
  values: [ [ 'てすと' ] ] }