Google Sheets セル値の更新

指定した Google Sheets の対象シートの対象セルを指定したデータ項目の値で更新します。通信ログは、文字型データ項目に格納されます。

2017 © Questetra, Inc. (the MIT License)
https://support.questetra.com/ja/addons/googlesheets-valueupdate/

Configs
  • A: OAuth2通信許可設定名 (←[OAuth 2.0 設定]) *
  • B: Spreadsheet ID が格納されている文字列型or選択肢型データを選択してください *
  • C: Sheet の名前が格納されている文字列型データor選択肢型データを選択してください *
  • D: 更新セルの座標が格納されている文字列型or選択肢型データを選択してください (例 “A1”) *
  • E: セルを更新するデータが格納されているデータ項目を選択してください *
  • X: 通信ログが格納される文字列型データを選択してください (更新)
Script
////// == 工程コンフィグの参照 / Config Retrieving ==
var oauth2  = configs.get( "conf_OAuth2" ) + "";
// Convert from 'java.lang.String' to 'JavaScript string' by '+""'
var dataIdB = configs.get( "conf_DataIdB" ) + ""; // Data Identification Number (e.g. "9")
var dataIdC = configs.get( "conf_DataIdC" ) + "";
var dataIdD = configs.get( "conf_DataIdD" ) + "";
var dataIdE = configs.get( "conf_DataIdE" ) + "";
var dataIdX = configs.get( "conf_DataIdX" ) + "";

////// == ワークフローデータの参照 / Data Retrieving ==
var fileId = ""; // e.g. "1PEZ5KEZc0RkUn7AbAe2lYaHXzbJ9jnZ2swIWPszRz6U"
if( engine.findDataDefinitionByNumber( dataIdB ).matchDataType( "STRING_TEXTFIELD" ) ){
  fileId = data.get( dataIdB ) + ""; // convert to JavaScript string
}else if( engine.findDataDefinitionByNumber( dataIdB ).matchDataType( "SELECT_SINGLE" ) ){
  fileId = data.get( dataIdB ).get(0).getValue() + "";
}
var sheetTitle = ""; // e.g. "Sheet1"
if( engine.findDataDefinitionByNumber( dataIdC ).matchDataType( "STRING_TEXTFIELD" ) ){
  sheetTitle = data.get( dataIdC ) + "";
}else if( engine.findDataDefinitionByNumber( dataIdC ).matchDataType( "SELECT_SINGLE" ) ){
  sheetTitle = data.get( dataIdC ).get(0).getValue() + "";
}
var cellCoordinate = ""; // e.g. "A1"
if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "STRING_TEXTFIELD" ) ){
  cellCoordinate = data.get( dataIdD ) + "";
}else if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "SELECT_SINGLE" ) ){
  cellCoordinate = data.get( dataIdD ).get(0).getValue() + "";
}
var updateValue = "";
if( engine.findDataDefinitionByNumber( dataIdE ).matchDataType( "SELECT_SINGLE" ) ){
  updateValue = data.get( dataIdE ).get(0).getValue() + "";
}else{
  updateValue = data.get( dataIdE ) + "";
}

////// == 演算 / Calculating ==
// preparing for API Request
var apiRequest = httpClient.begin(); // HttpRequestWrapper

// preparing for API Request (OAuth2 Access Token)
var token = httpClient.getOAuth2Token( oauth2 );
apiRequest = apiRequest.bearer( token );

// preparing for API Request (Path parameters)
var apiUri = "https://sheets.googleapis.com/v4/spreadsheets/";
  apiUri += fileId + "/values/" + sheetTitle + "!" + cellCoordinate;

// preparing for API Request (Query parameters)
apiRequest = apiRequest.queryParam( "valueInputOption", "USER_ENTERED" );

// preparing for API Request (JSON Body)
var requestObj = {};
  requestObj.values = [];
  requestObj.values[0] = [];
  requestObj.values[0][0] = updateValue;
apiRequest = apiRequest.body( JSON.stringify( requestObj ), "application/json" );

// PUT Request to the API
var response = apiRequest.put( apiUri ); // HttpResponseWrapper
var statusCode = response.getStatusCode() + "";
var accessLog = "";
accessLog += "---PUT request--- " + statusCode + "\n";
accessLog += response.getResponseAsString() + "\n";

// Retrieve Properties from Response-JSON
// (no action)

////// == ワークフローデータへの代入 / Data Updating ==
if( dataIdX !== "" ){
  retVal.put( dataIdX, accessLog );
}

Download

  • GoogleSheets-valueUpdate.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

Notes

See also

%d人のブロガーが「いいね」をつけました。