简体   繁体   中英

Automatically Delete rows in Google sheet script

I'm trying to write a google script that will updates the sensor data google sheet.This part is ok.

And I try to add a function clearRange(), when the data updated to 100 rows and delete the first 100 rows and reupdate the data. Is there something that I'm missing here?

function doGet(e) { 
  Logger.log( JSON.stringify(e) );
  var sheet_id = 'XXXXXXXXXXXXXXXXXXXXX';   // Spreadsheet ID
  var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet();
  var newRow = sheet.getLastRow() + 1;                      
  var rowData = [];
  var Curr_Date = new Date();
  var result = 'Ok';
  if (e.parameter == 'undefined') {
    result = 'No Parameters';
  }
  else if(e.parameter != 'undefined'){
    rowData[0] = Curr_Date; // Date in column A
    var Curr_Time = Utilities.formatDate(Curr_Date, "GMT+8", 'HH:mm:ss');
    rowData[1] = Curr_Time; // Time in column B
    for (var param in e.parameter) {
      Logger.log('In for loop, param=' + param);
      var value = stripQuotes(e.parameter[param]);
      Logger.log(param + ':' + e.parameter[param]);
      switch (param) {
        case 'temperature':
          rowData[2] = value; // Temperature in column C
          result = 'Temperature Written on column C'; 
          break;
        case 'humidity':
          rowData[3] = value; // Humidity in column D
          result += ' ,Humidity Written on column D'; 
          break;  
        default:
          result = "unsupported parameter";
      }
    }
    Logger.log(JSON.stringify(rowData));
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);
  }
else if (newRow==100)
 {
   clearRange();
 }

  return ContentService.createTextOutput(result);
}

function stripQuotes( value ) {
  return value.replace(/^["']|['"]$/g, "");
}

function clearRange() {
  sheet.deleteRows(1,100);
}

Try this:

function doGet(e) {
  var sheet_id = 'XXXXXXXXXXXXXXXXXXXXX';   // Spreadsheet ID
  var sh = SpreadsheetApp.openById(sheet_id).getActiveSheet();
  var newRow = sh.getLastRow() + 1;
  var rowData = [];
  var Curr_Date = new Date();
  var result = 'Ok';
  if (e.parameter == 'undefined') {
    result = 'No Parameters';
  }
  else if (e.parameter != 'undefined') {
    rowData[0] = Curr_Date; // Date in column A
    var Curr_Time = Utilities.formatDate(Curr_Date, "GMT+8", 'HH:mm:ss');
    rowData[1] = Curr_Time; // Time in column B
    for (var param in e.parameter) {
      var value = e.parameter[param].replace(/['"]+/g, '');
      switch (param) {
        case 'temperature':
          rowData[2] = value; // Temperature in column C
          result = 'Temperature Written on column C';
          break;
        case 'humidity':
          rowData[3] = value; // Humidity in column D
          result += ' ,Humidity Written on column D';
          break;
        default:
          result = "unsupported parameter";
      }
    }
    var newRange = sh.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);
  }
  else if (newRow == 100) {
    sh.deleteRows(1, 100);
  }
  return ContentService.createTextOutput(result);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM