LoginSignup
7
7

GoogleサイトとGoogleスプレッドシートを連携する

Last updated at Posted at 2023-05-16

1. はじめに

 Googleスプレッドシートの値をGoogleサイトに表示する方法を紹介します。
 方法は、Google Apps Script(GAS)を使用し、スプシの値をJOSN APIで取得できるようにし、そのAPIをGoogleサイトで使用し、スプシの値をGoogleサイトから参照できるようにします。
 

目次

1.はじめに
2.Google Apps Scriptを編集する
3.GoogleサイトにHTMLを埋め込む
4.参考記事

2. Google Apps Scriptを編集する

 スプシのタブから「拡張機能」を開き、Google Apps Scriptを選択します。
 開かれたGASのプロジェクトに以下を追記してください。またそこで使用するシートIDはスプレッドシートのリンク「https://docs.google.com/spreadsheets/d/(シートID)」で確認できます。

//デプロイする時は「全員」に設定する

const id = 'シートのID'
const name = 'シートの名前'

function getData() {
  var sheet = SpreadsheetApp.openById(id).getSheetByName(name);
  var rows = sheet.getDataRange().getValues();
  var keys = rows.splice(0, 1)[0];
  return rows.map(function(row) {
    var obj = {}
    row.map(function(item, index) {
      obj[keys[index]] = item;
    });
    return obj;
  });
}

function doGet(request) {
  var data = getData();
  return ContentService.createTextOutput(JSON.stringify(data, null, 2))
  .setMimeType(ContentService.MimeType.JAVASCRIPT);
}

 追記ができたら、右側のデプロイから「新しいデプロイ」を選択します。プロジェクトを始めてデプロイする時は承認が必要になります。
 承認完了後、開かれたウィンドウの右上の設定(歯車)から「ウェブアプリ」を選択し、生成されたURLからJSONでデータを取得できるかを確認します。問題なければ、アクセスできるユーザーを「全員」に設定し、右下のデプロイを押下します。
 これで、そのURLからスプシの値を参照することができます。

JSONデータの例

[ {
  "sum" : 3
} ]

3. GoogleサイトにHTMLを埋め込む

 Googleサイトの挿入タブから「埋め込む」を選択し、開かれたウィンドウで「埋め込みコード」タブを開き、以下を追記してください。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<body>
<div id="data">取得中</div>
<script>
window.onload = function(){ getJsonp_GAS() }

function getJsonp_GAS() {
	$.ajax({
		type: 'GET',
		url: 'デプロイ時生成されたURL',
		success: function(json){
            var dataJS = JSON.parse(json)
            //JSONデータの0番目のsumキー(スプシのカラム名)を参照する場合
			var html =  json[0].sum ;    //3
			
			document.getElementById('data').innerHTML = html;
		}
	});
}
</script>
</body>

以上で、Googleサイトにスプシの値を表示することができました!
不明な点は、参考記事を読むと解決するかもしれません。

4. 参考記事

7
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7