Skip to content

Instantly share code, notes, and snippets.

@milkmidi
Created April 10, 2019 04:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save milkmidi/44d5e71986f2ec81ebf6e0eb13bbe6b3 to your computer and use it in GitHub Desktop.
Save milkmidi/44d5e71986f2ec81ebf6e0eb13bbe6b3 to your computer and use it in GitHub Desktop.
Google App Scripts - Sheet Example
// https://developers.google.com/apps-script/reference/spreadsheet/sheet
function getActiveSheet(id){
var spreadSheet = SpreadsheetApp.openById(id);
var sheet = spreadSheet.getSheets()[0];
return sheet;
}
function doGet(e) {
var param = e.parameter;
var id = param.id;
if(!id){
var errorStr = JSON.stringify({status:'error', errors:['invalidate id']});
return ContentService.createTextOutput(errorStr).setMimeType(ContentService.MimeType.JSON);
}
var sheet = getActiveSheet(id);
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var firstRowValues = sheet.getSheetValues(1, 1, 1, lastColumn)[0];
var resultSheetArr = sheet.getSheetValues(2, 1, lastRow - 1, lastColumn);
var resultObj = {
status:"ok",
data:[]
};
for(var i = 0; i < resultSheetArr.length ; i++){
var a = resultSheetArr[i];
var itemObj = {};
for(var j = 0; j< firstRowValues.length; j++){
itemObj[firstRowValues[j]] = a[j];
}
resultObj.data.push(itemObj);
}
var JSONString = JSON.stringify(resultObj);
return ContentService.createTextOutput(JSONString).setMimeType(ContentService.MimeType.JSON);
}
function doPost(e){
var param = e.parameter;
var id = param.id;
var data = param.data;
var sheet = getActiveSheet(id);
data = data.split(',');
sheet.appendRow(data);
var resultObj = {
status: "ok",
lastRow: sheet.getLastRow()
}
var JSONString = JSON.stringify(resultObj);
return ContentService.createTextOutput(JSONString).setMimeType(ContentService.MimeType.JSON);
}
function debugGet() {
Logger.log("debugGet");
var queryString = "?id=14q38yMwbrI0c9Mq6PrOB-oxndFmk3wg6_SjeMtXi6Qg";
var url = ScriptApp.getService().getUrl() + queryString;
var options = {
"method" : "GET",
"followRedirects" : true,
"muteHttpExceptions": true
};
var result = UrlFetchApp.fetch(url, options);
if (result.getResponseCode() == 200) {
var params = JSON.parse(result.getContentText());
Logger.log(JSON.stringify(params));
}
}
function debugPost() {
Logger.log("debugPost");
var url = ScriptApp.getService().getUrl();
var payload = {
id: '14q38yMwbrI0c9Mq6PrOB-oxndFmk3wg6_SjeMtXi6Qg'
};
var options = {
"method" : "POST",
"payload" : payload,
"followRedirects" : true,
"muteHttpExceptions": true
};
var result = UrlFetchApp.fetch(url, options);
if (result.getResponseCode() == 200) {
var params = JSON.parse(result.getContentText());
Logger.log(params);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment