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...