2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

windos10からJSON形式のデータをPOSTしてスプレッドシートに反映する方法(複数行データ)

Last updated at Posted at 2021-02-20

#JSON形式のデータでPOSTしてスプレッドシートに反映する
windows上で作成したエクセルデータの一部googleスプレッドシートにコピペして反映していました。
ちょっと面倒なので、jsonファイルを作成して、curlコマンドでサクッと更新するのが目的
(サーバーから、定期的に情報を自動的に反映することができるので、汎用性が高い)

##JSON形式のデータを用意
複数行で、複数項目を入力できるjson形式を策定
必要データから、下記のJSONに変換するプログラムは別途用意が必要 

postするために用意したjson

{ "rows": [{"name":"JON","number":"1123","age":"20"}, {"name":"JIN","number":"2223","age":"23"}] }

##JSON形式のデータでPOSTで受信する(GAS)
gasのほうで、Post受信できるように作成
spreedsheetを用意しておきます。

*デプロイ作業が必要となります。

function doPost(e) {
  var params = JSON.parse(e.postData.getDataAsString());  // jsonを分解
  var value = params.rows;  //配列
  SHEET_ID=""
  SHEET_NAME=""
  var spreadsheet = SpreadsheetApp.openById(SHEET_ID);
  var sheet = spreadsheet.getSheetByName(SHEET_NAME);
  co=value.length;    //データの行の数をチェック
  for (k=0; k <=co-1;k++){
    number=value[k].number;
    name=value[k].name;
    age=value[k].age;
    sheet.getRange(k+1,1).setValue(number);
    sheet.getRange(k+1,2).setValue(name);
    sheet.getRange(k+1,3).setValue(age);
  }
//返答
  var output = ContentService.createTextOutput();
  output.setMimeType(ContentService.MimeType.JSON);
  output.setContent(JSON.stringify({ message: "success!" }));
  return output;

##windows10でcurlコマンドでjSONファイルをpost
windows10ではcurlコマンドが利用できます。jsonファイルを用意しないとエスケープシーケンス等面倒です。

jsonファイルを用意しておくと下記で利用可能

curl -d @test.json -H "Content-Type: application/json" <デプロイしたgasのURL>

コマンドラインでも直書きできますがお勧めしないです。*イメージ図

curl -d { /"rows/": ・・・・・・ } -H "Content-Type: application/json" <デプロイしたgasのURL>

##実際に使うとき(batファイル実行の注意点)
batファイルで、json作成 とcurlコマンドを一環で実行します。
batファイルを作成するとき「"」についてエスケープしないとエラーになります。*備忘録

@echo off
☆json作る処理
curl -d @test.json -H \"Content-Type: application/json\" <デプロイしたgasのURL>
2
2
0

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?