在Google Scripts中使用JavaScript将信息传输到电子表格,但电子表格显示未定义

Using JavaScript in Google Scripts to transfer information to spreadsheet, but spreadsheet shows undefined

本文关键字:电子表格 传输 未定义 显示 信息 Scripts Google JavaScript      更新时间:2023-09-26

我正在使用Google Scripts UiApp来收集可用性信息。我想把这些信息发送到电子表格中。我在这里使用了这个例子:http://www.googleappsscript.org/advanced-examples/insert-data-in-sheet-using-ui-forms让我从正确的方向开始。

Web应用程序看起来不错,当点击提交时,显示相应的消息。但是,传输到电子表格的值对于所有条目都显示为"未定义"。

我怎样才能说服它将文本框输入的数据链接到变量,以便我可以转移到电子表格?

谢谢! !

下面是一些代码:
var submissioSSKey = // Key removed
function doGet() {
var rows = 15
var columns = 15
var mygrid = UiApp.createApplication().setTitle("MLC Walk Ins Scheduling")
var panel = mygrid.createSimplePanel();
// Define the grid layout
var grid = mygrid.createGrid(rows, columns).setCellPadding(2).setCellSpacing(8)
// Create the text at the top
var Title = mygrid.createLabel("Walk-In Scheduling")
grid.setWidget(1, 1, Title)

(剪辑)-创建各种复选框和文本框

  var text1 = mygrid.createTextBox().setName('name1')
  grid.setWidget(3,9,text1)
  var text6 = mygrid.createTextBox().setName('message1')
  grid.setWidget(4,9,text6)
// Create the "submit" button
 var submit_button = mygrid.createButton("Submit")
grid.setWidget(12,9,submit_button)
 var infoLabel = mygrid.createLabel('Availability inserted    successfully.').setVisible(false).setId('info');
 grid.setWidget(13,9,infoLabel)
var handler = mygrid.createServerClickHandler('insertInSS');
handler.addCallbackElement(panel);
submit_button.addClickHandler(handler);  
panel.add(grid);
mygrid.add(panel);
mygrid.add(grid);
return mygrid
}

按钮的函数调用:

//Function to insert data in the sheet on clicking the submit button
function insertInSS(e){
var mygrid = UiApp.getActiveApplication()
var name1 = e.parameter.name1
var message1 = e.parameter.message1
 mygrid.getElementById('info').setVisible(true).setStyleAttribute('color','blue')
var sheet = SpreadsheetApp.openById(submissioSSKey).getActiveSheet()
var lastRow = sheet.getLastRow()
var targetRange = sheet.getRange(lastRow+1, 1, 1, 2).setValues([[name1,message1]])
return mygrid
}

啊!一个简单的解决一个大头痛。

我多了一行:

mygrid.add(grid);