

初心者です

グーグルスプレッドシートの内容を 外部のHTMLへ読み込むことは出来るのでしょうか？  
（例 スプレッドシートのA1をHTMLのPタグの中に入れる）  
GASのHTMLに読み込むと言った資料を見つけることはできたのですが  
外部のHTMLから読み込みというものが見つからず質問させていただいています

可能であればご教授いただけますと幸いです

よろしくお願いいたします


CC BY-SA 4.0
2018-10-04T10:19:34.243
48968
2019-03-17T00:01:10.187
30369
question
html google-apps-script
グーグルスプレッドシートの内容を外部のHTMLから読み込むことは出来るのでしょうか？


Googleスプレッドシートの内容を直接外部のHTMLに設定することはできません。  
ですが、以下の方法で実現は可能です。（設定などは適時変更してください）

  1. GAS（Google Apps Script）を使用してスプレッドシートの内容を返すAPIを作成。
  2. APIを公開 
    * GASのメニュー → 公開 → ウェブアプリケーションとして導入 → アプリケーションにアクセスできるユーザを「全員（匿名ユーザを含む）」更新
    * ↑URLをコピー
  3. HTML上のJavaScriptから1で作成したAPIを呼び出す。

実際のコードは以下のような形になります。

GAS

[code]

    var SHEET_NAME = "シート1";
    function getValue() {
      var ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
      var sheet = ss.getSheetByName(SHEET_NAME);
      return sheet.getRange("A1").getValue();
    }
    
    function doGet(e) {
      return ContentService.createTextOutput(getValue()).setMimeType(ContentService.MimeType.TEXT);
    }
    
[/code]

JavaScript

[code]

    # ↑の手順でコピーしたURL
    const url = "https://script.google.com/macros/s/xxxxxxxxxxx/exec"
    fetch(url , {
      method: "GET",
    }).then(response => response.text())
    .then(text => {
      // 取得した値をコンソールに出力
      console.log(text);
      // HTML上の必要な箇所に値を設定します。
      const targetID = "hoge";
      document.getElementById(targetID).innerText = text;
    });
    
[/code]

JavaSciprtでなくてもサーバ側でAPIを叩いても可能ですし、  
そもそもサーバ側で処理するのであれば、GASを使わずGoogleAPIを直接使用して直接スプレッドシートを読みに行く方法もあるかと思います。  
（詳しくないですがJavaだと[google-api-java-client](https://github.com/googleapis/google-
api-java-client)というライブラリが使用できそうです。）


CC BY-SA 4.0
2019-02-08T06:05:28.197
52637
2019-02-08T06:05:28.197
13022
48968
answer