SpreadSheet?を走査して、データを取得する

05.png

こんなデータを用意しました。このSpreadSheet?に紐付いたエディタで定義した関数は以下の通り:

function getAllRecords(){
  var mySheet = SpreadsheetApp.getActiveSheet(); // アクティブなシート
  //  var mySheet = SpreadsheetApp.getActive().getSheetByName('シート2'); // シート名指定
  var arrData = mySheet.getDataRange().getValues();
   
  for(var i=0; i< arrData.length; i++){
    Logger.log(arrData[i]);
  }
}

こんな感じでセルのデータにアクセスができます。実行しようとすると、OAuth2の認可画面が出ますが、そのシートへのデータアクセスを許可すれば、下記の実行結果が得られます。 


[17-03-25 16:31:09:521 JST] [NO, 住所, 氏名, 年齢]
[17-03-25 16:31:09:522 JST] [1.0, 東京, 名前1, 20.0]
[17-03-25 16:31:09:522 JST] [2.0, 東京, 名前2, 21.0]
[17-03-25 16:31:09:523 JST] [3.0, 東京, 名前3, 22.0]
[17-03-25 16:31:09:524 JST] [4.0, 東京, 名前4, 23.0]
[17-03-25 16:31:09:524 JST] [5.0, 東京, 名前5, 24.0]
[17-03-25 16:31:09:525 JST] [6.0, 東京, 名前6, 25.0]
[17-03-25 16:31:09:525 JST] [7.0, 東京, 名前7, 26.0]
[17-03-25 16:31:09:526 JST] [8.0, 東京, 名前8, 27.0]
[17-03-25 16:31:09:526 JST] [9.0, 東京, 名前9, 28.0]
[17-03-25 16:31:09:527 JST] [10.0, 東京, 名前10, 29.0]
[17-03-25 16:31:09:527 JST] [11.0, 東京, 名前11, 30.0]
[17-03-25 16:31:09:527 JST] [12.0, 東京, 名前12, 31.0]
[17-03-25 16:31:09:528 JST] [13.0, 東京, 名前13, 32.0]

SpreadSheet?に入力された日付の取扱い。

for(var i=0; i< arrData.length; i++){
  var date = new Date(arrData[i][4]);
  //    Logger.log(date);
  Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'));
}            ↑フォーマットされた文字列を返す

ついでに、つぎの日とかの取得方法。

Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'));
date.setDate(date.getDate() + 1);  ←日付+1
Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'));

SpreadSheet?へのレコード追加。

var mySheet = SpreadsheetApp.getActiveSheet(); // アクティブなシート
var record = [
  'data1',
  'data2',
  'data3',
  'data4',
];
mySheet.appendRow(record);

このように列ごとのデータを配列で渡せばOK。

doPost(e)のパラメタへのアクセス

例: e.parameter.param1 で、

curl -X POST https://script.google.com/[WEBアプリURL] --data-urlencode 'param1=value1'

で言うところの 'value1' が取得できる。

以下、整理中。

SlackのOutgoing WebHooks?を使って、処理を起動する

処理結果を Slackへ通知する

これらを使って、SlackのBotをつくる

RESTを叩いてデータをとりにいく

Gmail送信する

環境変数を設定する

Slackのライブラリで チャンネルIDを指定

//slackApp インスタンスの取得
var slackApp = SlackApp.create(token);
 
// var channelId = e.parameter.channel_id;  ←SlackからのPOSTデータから取得
var channelId = slackApp.channelsList().channels[0].id;  ← #generalを指定

チャンネルのIDを確認

var cList = slackApp.channelsList().channels;
for(var i=0;i<cList.length ; i++){
  message += "[ "+cList[i].id +" ]";
  message += "[ "+cList[i].name +" ]";
}

データを返す

var result = {なんかObject};
return ContentService.createTextOutput(JSON.stringify(result))
  .setMimeType(ContentService.MimeType.JSON);

これで、JSON文字列をContentType? = JSONで返却することができそうです。 ただしGASはセキュリティ上(?)コンテンツを返すのではなく302を返して、そこにリダイレクトすることで、上記JSONを取得するようです。

関連リンク


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

現在のアクセス:1879


添付ファイル: file05.png 549件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-28 (火) 18:13:29 (2578d)