Advertisement
Guest User

Google Spreadsheets Script

a guest
Feb 4th, 2015
8,960
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  1. Run > setup
  2. //
  3. //  2. Publish > Deploy as web app
  4. //    - enter Project Version name and click 'Save New Version'
  5. //    - set security level and enable service (execute as 'me' and access 'anyone, even anonymously)
  6. //
  7. //  3. Copy the 'Current web app URL' and post this in your form/script action
  8. //
  9. //  4. Insert column names on your destination sheet matching the parameter names of the data you are passing in (exactly matching case)
  10.  
  11. var SCRIPT_PROP = PropertiesService.getScriptProperties();
  12.  
  13. function doGet(e){
  14.   try {
  15.     var key = e.parameter["key"]
  16.     var sheetName = e.parameter["sheet"]
  17.     var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  18.     var sheet = doc.getSheetByName(e.parameter["sheet"]);
  19.     var data = sheet.getDataRange().getValues();
  20.     var value
  21.     for (var i = 1; i < data.length; i++) {
  22.       if (data[i][0] == key) {
  23.         value = data[i][1];
  24.       }
  25.     }
  26.     if (value){
  27.       return ContentService
  28.       .createTextOutput(JSON.stringify({"result":"success", "value": value}))
  29.       .setMimeType(ContentService.MimeType.JSON);
  30.     } else {
  31.       return ContentService
  32.       .createTextOutput(JSON.stringify({"result":"error", "error": "Key not found"}))
  33.       .setMimeType(ContentService.MimeType.JSON);
  34.     }
  35.   } catch(e){
  36.     return ContentService
  37.           .createTextOutput(JSON.stringify({"result":"error", "error": "Database does not exist"}))
  38.           .setMimeType(ContentService.MimeType.JSON);
  39.   }
  40. }
  41.  
  42. function doPost(e){
  43.   var sheetNom = e.parameter["sheet"];
  44.   var lock = LockService.getPublicLock();
  45.   lock.waitLock(30000);
  46.   try {
  47.     var key = e.parameter["key"]
  48.     var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
  49.     var sheet = doc.getSheetByName(e.parameter["sheet"]);
  50.     var data = sheet.getDataRange().getValues();
  51.     var headRow = e.parameter.header_row || 1;
  52.     var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  53.     var nextRow = sheet.getLastRow()+1;
  54.     var row = [];
  55.     for (var i = 1; i < data.length; i++) {
  56.       if (data[i][0] == e.parameter["key"]) {
  57.         nextRow = i + 1;
  58.       }
  59.     }
  60.     for (i in headers){
  61.         row.push(e.parameter[headers[i]]);
  62.     }
  63.     sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
  64.     return ContentService
  65.           .createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
  66.           .setMimeType(ContentService.MimeType.JSON);
  67.   } catch(e){
  68.     return ContentService
  69.     .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
  70.           .setMimeType(ContentService.MimeType.JSON);
  71.   } finally {
  72.     lock.releaseLock();
  73.   }
  74. }
  75.  
  76. function setup() {
  77.     var doc = SpreadsheetApp.getActiveSpreadsheet();
  78.     SCRIPT_PROP.setProperty("key", doc.getId());
  79. }
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement