投稿日:2018/03/22
更新日:2018/09/21
スプレッドシート操作
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-apiC:\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: [ [ 'てすと' ] ] }