スキップしてメイン コンテンツに移動

GASで作るSPAダッシュボード

GASで作るSPAダッシュボード

GASとHTML Serviceの応用

Google Apps Script(GAS)はスプレッドシートやドキュメントと連携し、業務自動化を実現する強力なツールです。HTML Serviceを組み合わせることで、GASから直接ブラウザ上にカスタムUIを表示できます。例えば、スプレッドシートのデータを取得し、ダイナミックに生成したフォームを表示してユーザーから入力を受け取るといったケースが典型的です。

以下は、GASでHTML Serviceを呼び出し、簡易フォームを表示するサンプルです。

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index')
      .setTitle('GASフォーム')
      .setWidth(400)
      .setHeight(300);
}

index.html では、google.script.run を使ってサーバー側の関数を呼び出し、データを送受信します。これにより、フロントエンドとバックエンドの連携がスムーズに行えます。

Chart.jsでデータ可視化

Chart.jsは軽量で柔軟なJavaScriptライブラリで、データを美しく可視化できます。GASで取得したスプレッドシートの数値をJSON形式で渡し、Chart.jsでグラフ化することで、リアルタイムに変化するデータを視覚的に把握できます。

サンプルコードは以下の通りです。

var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ['Jan', 'Feb', 'Mar'],
    datasets: [{
      label: '売上',
      data: [120, 150, 180],
      backgroundColor: 'rgba(54, 162, 235, 0.5)'
    }]
  },
  options: {}
});

このように、Chart.jsはHTML Service内でも簡単に組み込めるため、GASと組み合わせたダッシュボード構築に最適です。

Vue.jsとReactでSPAリッチUI

フロントエンドのSPA(Single Page Application)は、ユーザー体験を向上させるために不可欠です。Vue.jsとReactはそれぞれ独自のコンポーネントベースの開発手法を提供し、リッチUIを実現します。

Vue.jsでは、Vue.component を使って再利用可能なコンポーネントを作成し、v-bind でデータを双方向にバインドします。Reactでは、関数コンポーネントとフック(useState, useEffect)を組み合わせて状態管理を行います。

以下は、Vue.jsで簡易カードコンポーネントを作る例です。

Vue.component('data-card', {
  props: ['title', 'value'],
  template: `
    

{{ title }}

{{ value }}

` });

Reactの場合は次のように書きます。

function DataCard({ title, value }) {
  return (
    <div className="card">
      <h3>{title}</h3>
      <p>{value}</p>
    </div>
  );
}

SPAのメリットは、ページ遷移が不要で高速なレスポンスを提供できる点です。GASと組み合わせる際は、google.script.run を非同期で呼び出し、データを取得してコンポーネントに渡す設計が一般的です。

管理画面とダッシュボード構築

管理画面は、業務データを一元管理し、操作性を高めるための重要なUIです。GASでデータを取得し、Chart.jsで可視化し、Vue.js/ReactでリッチUIを構築することで、完全なダッシュボードを実現できます。

実装の流れは次の通りです。

  1. GASでスプレッドシートからデータを取得し、JSONで返却。
  2. HTML Service内でVue.js/Reactをロードし、コンポーネントを初期化。
  3. 取得したJSONをコンポーネントに渡し、Chart.jsでグラフを描画。
  4. ユーザー操作(フィルタ、検索)に応じて再度GASを呼び出し、データを更新。

この構成により、管理者はリアルタイムで業務状況を把握でき、意思決定を迅速に行えます。さらに、SPAの特性を活かすことで、ページ遷移の遅延を排除し、スムーズな操作感を提供します。

この記事はAIによって作成されました。

コメント