使用Ui服务的submitButton在Google电子表格中写入数据

时间:2012-12-18 14:57:54

标签: google-apps-script google-sheets

我试图在GAS中编写一个脚本来从我使用Ui Service创建的表单中写入数据,但它不起作用。

表单显示正常,但保存电子表格中数据的功能不起作用:

function SalvaRegistro(e) {
var app=UiApp.getActiveApplication();
var DataValue=e.parameter.Data;
var TicketIDValue=e.value.TicketID;
var TicketTypeValue=e.value.TicketType;
var DemandedByValue=e.value.DemandedBy;
var AnalystValue=e.value.Analyst;
var StatusValue=e.value.Status;
var DescriptionValue=e.value.Description;
var TicketIDValue=e.value.TicketID;

sheet=SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow, getColIndexByName("Data")).setValue(DataValue);
sheet.getRange(lastRow, getColIndexByName("Ticket ID")).setValue(TicketIDValue);
sheet.getRange(lastRow, getColIndexByName("Ticket Type")).setValue(TicketTypeValue);
sheet.getRange(lastRow, getColIndexByName("Demandado por")).setValue(DemandedByValue);
sheet.getRange(lastRow, getColIndexByName("Analista")).setValue(AnalystValue);
sheet.getRange(lastRow, getColIndexByName("Status")).setValue(StatusValue);
sheet.getRange(lastRow, getColIndexByName("Descrição")).setValue(DescriptionValue);
return app.close()
                  }

如何让表单在电子表格中写入数据?

1 个答案:

答案 0 :(得分:0)

如果您在GUI中使用FormPanel和Submit按钮,则可以使用名为doPost(e)的预定义函数,其中e var将包含所有FormPanel值。 对于每个输入字段,还在GUI Builder中设置Name参数,以便您可以按名称引用它们。这是代码:

function doPost(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var txt1 = e.parameter.TextBox1Name;
  var txt2 = e.parameter.TextBox2Name;
  ss.getActiveSheet().appendRow([txt1,txt2]);
}

对于我从代码中可以看到的内容,您只需要添加一行,而不是查看最后一行,您可以像我一样使用appendRow函数。