Googleスプレッドシートは、Node.jsなどのプログラムを通じてデータを保存することもできます。これを使えば、たとえば、お問い合わせフォームのデータを直接Googleスプレッドシートに保存したりと、様々な業務効率化が可能になります。
本記事では、GoogleスプレッドシートにNode.jsでデータを追加する方法を紹介します。


Googleスプレッドシートは、Node.jsなどのプログラムを通じてデータを保存することもできます。これを使えば、たとえば、お問い合わせフォームのデータを直接Googleスプレッドシートに保存したりと、様々な業務効率化が可能になります。
本記事では、GoogleスプレッドシートにNode.jsでデータを追加する方法を紹介します。
まずは、Google Cloud のプロジェクトを作成します。
Google Cloud(旧Google Cloud Platform)は、Google が運営するクラウドサービスです。
プロジェクトをすでに持っている方は、そちらを使っていただいても大丈夫です。
次に、Google Sheets API の有効化を行います。
Google Sheets API を使うことで、スプレッドシートの内容を読み取ったり、データを書き込んだりすることができます。
Google Cloud 内の検索窓で「Google Sheets API」と検索し、「有効にする」ボタンを押します。

次に、Google Cloud でサービスアカウントを作成します。
サービスアカウントとは、プログラム専用のアカウントのようなものです。今回は、Node.js にこのサービスアカウントを渡して、スプレッドシートのAPIを実行する形になります。
サービスアカウントを作成するには、検索窓に「APIとサービス」と入力し、「APIとサービス」のページに移動します。左側の「認証情報」メニューにて、「認証情報を作成」を押し、「サービスアカウント」を選択します。

「サービスアカウント名」と「サービスアカウントID」に任意の文字列を入力して、「完了」ボタンを押します。

これで、サービスアカウントの作成は終了です。
※ サービスアカウントには、メールアドレスが割り当てられますが、このメールアドレスはあとで使いますので、コピーしておいてください。
次に、先ほど作成したサービスアカウントの秘密鍵ファイルを作成していきます。
秘密鍵ファイルは、Node.js からスプレッドシートのAPIを実行するために必要となります。
対象のサービスアカウントのページにて、「鍵」タブから「キーを追加」を押し、「新しい鍵を作成」を選択します。以下のダイアログが表示されますので、「JSON」を選択してください。

これで、秘密鍵ファイルの作成は完了です。
次に、先ほど作成したサービスアカウントが対象のスプレッドシートを編集できるように、共有設定を行っていきます。
データ追加したいスプレッドシートを開き、「共有」ボタンを押して、先ほど作成したサービスアカウントのメールアドレスを入力します。権限は「編集者」を選択してください。

最後に、「送信」ボタンを押します。
最後に、Node.js でコードを実装します。
コードの例は、GitHub Gist にて公開していますので、参考にしてみてください。
このコードを実行すると、以下の画像のように、一行ずつデータを追加していくことが可能です。

本記事では、GoogleスプレッドシートにNode.jsでデータを追加する方法を紹介しました。
業務効率化にとても便利ですので、ぜひ試してみてください。