google-spreadsheet
というパッケージを使用し、スプレッドシートへの書き込みの実装をしたので、その備忘録です。
google-spreadsheet - npm
下記の記事をみておけばほぼわかります。
【Node.js】 Googleスプレッドシートを簡易データベースとして使う - 一日一膳(当社比)
GoogleスプレッドシートからNode.jsでシフトデータを読み出す方法 - Twilio
準備
APIの有効化 & 認証
- GoogleSpreadsheet API 有効化
- サービスアカウントを発行
- スプレッドシートに 作成したサービスアカウントを招待(メールアドレス)
- アプリケーション側で読み込み
インストール
npm i google-spreadsheet
実装したもの
const{GoogleSpreadsheet}=require('google-spreadsheet');constSHEET_ID=3333053444;constyear=newDate().getFullYear();constmonth=newDate().getMonth()+1;asyncfunctionwriteSheet(){try{constdoc=newGoogleSpreadsheet("Key");awaitdoc.useServiceAccountAuth(require("./gcp-creds.json"));// 認証awaitdoc.loadInfo();// スプレッドシートの読み込みconstsheet=awaitdoc.sheetsByIndex[SHEET_ID];// シートの読み込みawaitsheet.addRows([{年月:`${year}年${month}月`,ユーザー名:'Sergey Brin',会社名:'testCompany',url:"url"},{年月:`${year}年${month}月`,ユーザー名:'Sergey Brin2',会社名:'testCompany',url:"url"},]);}catch(error){console.log(error)}}writeSheet()
Key
下記のようにスプレッドシートがあった場合、Key
は waoooooooooooIsssssssssss
が該当します。https://docs.google.com/spreadsheets/d/waoooooooooooIsssssssssss/edit#gid=3333053444
constdoc=newGoogleSpreadsheet("Key");
SHEET_ID
下記のようにスプレッドシートがあった場合、ID
は 3333053444
が該当します。https://docs.google.com/spreadsheets/d/waoooooooooooIsssssssssss/edit#gid=3333053444
constSHEET_ID=3333053444;
addRows
年月:
の箇所は、下記のようにスプレッドシートで記載している情報と合わせる必要があります。
もしあっていなければ、エラーは出力されず、書き込まれず、処理が終了します。
awaitsheet.addRows([{年月:`${year}年${month}月`,ユーザー名:'Sergey Brin',会社名:'testCompany',url:"url"},{年月:`${year}年${month}月`,ユーザー名:'Sergey Brin2',会社名:'testCompany',url:"url"},]);
日付処理
アウトプット
node index.js
を実行すると、下記のようなアウトプットが得られます。