JSFiddle - React, Tailwind, and code Playground

by pierian_design

JavaScript

function cowsSelectRangeByNotation(sNotation, sSheetName, bForPut) {
  
    var oReturn = {
      'bError': false,
      'sMessage': '',
      'sSheetName': '',
      'startRow': 1,
      'startColumn': 1
    };
      
    try {
    
      var oActiveSpreadsheet = SpreadsheetApp.getActive();
      var oActiveSheet = oActiveSpreadsheet.getActiveSheet();
      var sActiveSheetName = oActiveSheet.getName();
      
      if ((sActiveSheetName !== sSheetName) && (sSheetName.length)) {
        oActiveSheet = oActiveSpreadsheet.getSheetByName(sSheetName);
        oActiveSheet.activate();
      }
      if (oActiveSheet) {
      
        var oRange = oActiveSheet.setActiveSelection(sNotation);
        
        oReturn.startRow = oRange.getRow();
        oReturn.startColumn = oRange.getColumn();
      }
      if ((oRange.getNumRows() < 1 && oRange.getNumColumns() < 1) || !bForPut) {
        oReturn.bError = true;
        oReturn.sMessage = 'The selected range is too small';
      }
      if (oRange.isBlank() && !bForPut) {
        oReturn.bError = true;
        oReturn.sMessage = 'The selected range is empty';
      }      
      oReturn.sSheetName = oActiveSheet.getName();
      return JSON.stringify(oReturn);
    } catch(e) {
      oReturn.bError = true;
      oReturn.sMessage = 'The entered range is incorrect';
      return JSON.stringify(oReturn);
    }
    
  }
  
  function cowsValidateRangeByNotation(sNotation, sSheetName, sSpreadsheetId, bForPut) {
  
    var oReturn = {
      'bError': false,
      'sMessage': '',
      'startRow': 1,
      'startColumn': 1
    };
      
    if (sNotation === '') {
      return JSON.stringify(oReturn);
    }
    
    try {
    
      var oSpreadsheet = {};
      var oRange = {};
      
      if (sSpreadsheetId) {
        oSpreadsheet = SpreadsheetApp.openById(sSpreadsheetId); 
      } else {
        oSpreadsheet = SpreadsheetApp.getActive();
      }
  
      var oSheet = oSpreadsheet.getSheetByName(sSheetName);
  
      if...