0

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

表格显示ok,但是在电子表格中保存数据的功能不起作用:

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()
                  }

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

4

1 回答 1

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 函数。

于 2012-12-18T16:35:02.723 回答