JSFiddle - React, Tailwind, and code Playground

by pierian_design

JavaScript

function cowsGetCurrentSpreadsheetInfo() {
  
    var oSpreadsheet = SpreadsheetApp.getActive();
    var aSheets = oSpreadsheet.getSheets();
    var aResult = [{
          'sName': oSpreadsheet.getName(),
          'sId': oSpreadsheet.getId(),
          'bMainSpreadsheet': true,
          'bSelected': false,
          'oSheets': {}
    }];
    
    aSheets.forEach(function(oSheet) {
      var sSheetId = oSpreadsheet.getId() + '-' + oSheet.getSheetId();
      
      aResult[0].oSheets[sSheetId] = {
        'sName': oSheet.getName(),
        'sId': oSheet.getSheetId(),
        'sNotation': '',
        'sSpreadsheetId': oSpreadsheet.getId(),
        'bMainSpreadsheet': true,
        'bSelected': false,
        'width': oSheet.getMaxColumns(),
        'height': oSheet.getMaxRows()
      };
    });
    
    return JSON.stringify(aResult);
}







function cowsGetCurrentSpreadsheetInfo() {
    var oSpreadsheet = SpreadsheetApp.getActive();
    return [getSpreadsheetInfo(oSpreadsheet)];
}

function getSpreadheetsInfo(aSpId) {
		return aSpId.map(function(sId) {
			var oSpreadsheet = SpreadsheetApp.openById(sId);
			return getSpreadsheetInfo(oSpreadsheet);
    });
}

function getSpreadsheetInfo(oSpreadsheet) {
	  var aSheets = oSpreadsheet.getSheets();
    var oSpreadsheetInfo = {};
    var oSheets = {};
    var aResult = [];
    
    aSheets.forEach(eachSheetIterate);
    
    function eachSheetIterate(oSheet) {
      var sSheetId = getSheetId(oSpreadsheet.getId(), oSheet.getSheetId());      
      oSheets[sSheetId] = getSheetInfo(oSpreadsheet, oSheet);
    }
    
    oSpreadsheetInfo = getSpreadsheetInfo(oSpreadsheet, oSheets);
   
    return oSpreadsheetInfo;
}

function getSheetId(oSpreadsheet, oSheet) {
	return oSpreadsheet.getId() + '-' + oSheet.getSheetId();
}

function getSpreadsheetInfo(oSpreadsheet, oSheets) {
		return {
          'sName': oSpreadsheet.getName(),
          'sId': oSpreadsheet.getId(),
          'bMainSpreadsheet': true,
          'bSelected':...