Error al crear Formulario en google sheets

Estoy tratando de crear un formulario, en la cual este es mi index.html y

lo que estoy tratando de crear es un formulario que permita almacenar informacion que se registre en un excel que se encuentra en google sheet, pero resulta que no me permite almacenar, lo que busco es usar este excel como una base de datos en la cual puedan ingresar informacion


<script src="//"></script> <link rel="stylesheet" href=""> <script> function procesaFormulario(){[0]); }   $  (function() {     $  ( "#guardar" ).click(procesaFormulario);   }); </script>  <html> <?   var hojaCalculo = SpreadsheetApp.openById("1r5UJJZcPL64JAmqyz8p1cV_e6m7QtlHT040pThF7QWw");   var hojaParametros = hojaParametros.getSheetByName('Parametros');    var ultimaFila=hojaParametros.getLastRow(); ?> <div> <form id="datosPersona" name="datosPersona">  <br>  Nombre (s):  <br><input type="text" id="nombre" name="nombre" placeholder="primer y/o segundo nombre" required>   <br>  Apellido (s):  <br><input type="text" id="apellido" name="apellido" placeholder="primer y/o segundo apellido" required>   <br>  ID:  <br><input type="text" id="id" name="id" placeholder="Numeros y Letras" required>   <br> Sexo:  <br>  <select type="text" id="sexo" name="sexo" required>  <? i=2;    while(i<=ultimaFila){  ?> <option value="<?=hojaParametros.getRange(i,1).getValue()?>"><?=hojaParametros.getRange(i,1).getValue()?></option>  <?  i++; }  ?>  </select>  <br><br>   <button class="action" id="guardar">Guardar</button>  </form>  </div>  </html> 


// Llamar al HTML   function doGet(e) {   Logger.log(Utilities.jsonStringify(e));   if(!{    return HtmlService.createTemplateFromFile("Index").evaluate();   }     var template=HtmlService.createTemplateFromFile(;   template.action=ScriptApp.getService().getUrl();   return template.evaluate();    //return HtmlService.createHtmlOutputFromFile('Index'); }  function procesaFormDatosPersona(e){    var sNombre = e.nombre;    var sApellido = e.apellido;    var sId =;    var sSexo = e.sexo;      var hojaCalculo = SpreadsheetApp.openById("1r5UJJZcPL64JAmqyz8p1cV_e6m7QtlHT040pThF7QWw");    var hojaDatos = hojaCalculo.getSheetByName('Datos');    var ultimaFila = hojaDatos.getLastRow();     hojaDatos.getRange(ultimaFila+1,1).setValue(sNombre);    hojaDatos.getRange(ultimaFila+1,2).setValue(sApellido);    hojaDatos.getRange(ultimaFila+1,3).setValue(sId);    hojaDatos.getRange(ultimaFila+1,4).setValue(sSexo);    } 

pero resulta que al momento de publicar el formulario, me muestra este error:

 TypeError: No se puede llamar al método "getSheetByName" de undefined. (línea 6, archivo "Main", proyecto "informacion 2019") 

Que podria modificar en mi codigo?

Google sheets API retornar vista filtrada

Cómo retornar valores de vista filtrada en una planilla de Google por API. Debajo muestro cómo retorno valores de toda la planilla y más abajo el ID del filtro que necesito retornar (la API la modifiqué para usar como ejemplo)   edit#gid=1979632929&fvid=633114568 

What sort of cheat sheets should a new DM have for a better flowing 5e game of Dungeons and Dragons?

The question is, what should a DM screen essentially have?

I’m new at playing and DMing, altough a lot of experience watching games, just got a group to play with now.

Started with the starter set in 5E and the Lost Mine of Phandelver adventure, however I’ve noticed the game can come to a stop when checking the rules or how to do something, while getting the books and stuff like that.

So I thought to make a DM screen with some cheat sheets, of the most usual things new players, and new DM’s have doubts on, and how to make the game flow well without long rule-checking breaks.

What should be on that screen?

So far this is what I found but not sure if it has all I need or so much stuff that’ll also make the game stop a lot while cheking it out.

Loading google sheets data into localdb sql

I have a google spreadsheet with data that pertains to people that want to work for ice cream shops.

An UI is to be created that will be able to [read, write, delete] that data from the ui and sync the changes to the google spreadsheet. The reason for not using google spreadsheet is that there are easily 5k rows that will continue to increase.

With that, this main sheet does some calculations in google apps script that pushes and pulls data from about 10 other spreadsheets. The ability to access that data locally, in my opinion will improve the time it takes to do theses calculations as they are set on triggers and can take 10 minutes to refresh to the other sheets in all.

I am using for the ui and sql localdb to house the data grabbed from the google sheets api.

There is ssis but is complicated and as there is no updated guides for pulling google sheets into it.

Has anyone dealt with this before?

I am efficient in c#, javascript, node, python, c++. Junior in Java.

Replacing data in Google Sheets

I am new to coding! I have data in Sheet 1 of a Larger Spreadsheet that looks like this


and wish to change it to look like


I have tried to write a macro:

function Dated() {   var sheet = SpreadsheetApp.getActiveSheet();   var range = sheet.getRange("ac7:ag24");   var to_replace = ".";   var replace_with = "/";   replaceInSheet(sheet,range, to_replace, replace_with);  }; 

However, I get an error:

ReferenceError: “replaceInSheet” is not defined.

It is possibly quite simple but cannot solve it!

How to open a Google Sheets file and imediately jump to the end on the mobile app?

Similar questions have been asked before (e.g. here) but this code doesn’t work on the mobile (Android) Google Sheets app.

Apps script does work on the mobile version in general, as long as there is an internet connection.

Is it possible to get a similar script to work on the mobile version of Google Sheets?

Google Sheets Read Only on Android

I created a spreadsheet in Google Sheets. I shared the link with two users. They can click on the link in the e-mail and can edit the spreadsheet with no issue. However, one of the users created a shortcut on their Android Phone (LG G7 ThinQ). When she opens the spreadsheet from her phone it is Read Only and cannot perform any edits. She is using the same gmail account on her phone that I sent the link too. Any ideas what might be causing this?

How do you select a large number of rows in Google Sheets without endless scrolling downward after selecting the first row?

In a spreadsheet of 40,000 rows, I want to select the first 2,500 rows to copy them to another sheet. The only way I’ve seen is to select the first row and tediously scroll the “dot” down to include all 2,500 rows. On a computer, this would be a breeze with the Shift key. How to accomplish something similar in Android Sheets? The keyboard doesn’t open unless I’m editing a cell, so any keyboard-based solution seems to be a non-starter. Thanks.

Google Sheets Pulling data between a specific date and time, from a timestamp

I am trying to pull specific data from a timestamp that i will be using in several pivot tables.

Here is my workbook

To summarize: I have several other workbooks that have a google form attached to them. When my employees fill out the form a timestamp appears in one of the workbooks. The data in those workbooks are being pulled by the link i shared. (i included some random data to play with)

Then i made a pivot table for each Hour of the work day (7am-6pm) to summarize all the information for specific date and a specific range of time. If i have all the data its easy for me to filter the pivot table by date and time. See below (In this example i’m retrieving all the data by each processor who worked on 6/25/2019 at 8:00am to 8:59am):Please see image below

This is perfect; however, it only works if i already have the data. When a new day begins and new data is being pulled the pivot table wont pull anything because the filter for a new date and specific hour of the day has not been created. This is because the data doesn’t exist yet. Fair enough.

What i want to do is find a way to pull data from a specific future date and specific future time to see live data. For example: 7/01/2019 8:00am to 8:59am, 7/01/2019 9:00am to 9:59am, 7/01/2019 10:00am to 10:59am.

So lets say tomorrow (7/01/2019), Max fills out the form at 8:33am the formula will automatically pull that criteria because it falls between 7/01/2019 8:00am to 8:59am

I know i can put formulas into a pivot table or search between different numbers but i am having a really hard time figuring this out. Should i be using something else thats not a pivot table? I would need to SUM the “# OF LOADS” and the “# OF PVS” and the TOTAL by employee, and by how much they’ve done an hour. Any help is appreciated. Thank you.