Skip to content

Instantly share code, notes, and snippets.

@SidMarc
Created October 29, 2021 16:15
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 SidMarc/69b283dbc1d7b8ad5942d04527c04344 to your computer and use it in GitHub Desktop.
Save SidMarc/69b283dbc1d7b8ad5942d04527c04344 to your computer and use it in GitHub Desktop.
Google Sheets Script for Datalogger PLCnext Library
// PLCnext Datalogger with Google Sheets
// Version: 1.0 - 29/10/2021
function doGet(e){
return handleResponse(e);
}
function doPost(e){
return handleResponse(e);
}
function handleResponse(e) {
try {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet_name = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
var sheet = doc.getSheetByName(sheet_name);
var headRow = 1;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow() + 1; // get next row
var row = [];
var output = "";
if (e.parameter["command"] == "Save")
{
output = SaveSpreadSheet(doc);
}
else
{
// loop through the header columns
for (i in headers){
row.push(e.parameter[headers[i]]);
}
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
output = JSON.stringify({"result":"success", "row": nextRow});
}
// return jsonp success results
return ContentService
.createTextOutput(output)
.setMimeType(ContentService.MimeType.JSON);
}
catch(e){
output = JSON.stringify({"result":"error", "error": e});
return ContentService
.createTextOutput(output)
.setMimeType(ContentService.MimeType.JSON);
}
finally {
}
}
function SaveSpreadSheet(spreadsheet) {
var data = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyyMMdd_HHmmss");
var newFile = SpreadsheetApp.getActiveSpreadsheet().getName() + "_" + data;
DriveApp.getFileById(spreadsheet.getId()).makeCopy(newFile);
DeleteSpreadSheet(spreadsheet);
return JSON.stringify({"result":"success", "file": newFile});
}
function DeleteSpreadSheet(spreadsheet){
var sheet_name = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
var sheet = spreadsheet.getSheetByName(sheet_name);
var NumRows = sheet.getLastRow() - 1;
var NumCols = sheet.getLastColumn();
if (NumRows > 0){
sheet.getRange(2,1,NumRows,NumCols).deleteCells(SpreadsheetApp.Dimension.ROWS);
}
}
@izarikos
Copy link

Hi, I tried your code. Unfortunately, I get "Curl command returned an error Possible cause: Incorrect Google URL" I followed the instructions, but I still get this error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment