我尝试在Google表单中创建,以便一次将数据插入多张表格中。 当您打开表单时,您有输入某些值的字段和复选框,您可以在其中选择要输入数据的工作表。 我有一个问题,如何将数据一次写入多张纸? 在我的代码下面。
<b>test 1.1</b><br />
<br>
<form>
<br>
Nr item:<br>
<input id="NrItem" name="NrItem" type="text" />
<br>
<br>
<input name="choices" type="checkbox" value="something1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="something2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="something3" /> sheet3
<br>
<br>
<br>
<input onclick="formSubmit()" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit() {
google.script.run.getValuesFromForm(document.forms[0]);
}
</script>
function demoHtmlServices() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
html = HtmlService.createHtmlOutputFromFile('Index').setWidth(200).setHeight(550);
ss.show(html);
}
//getValuesFromForm
function getValuesFromForm(form){
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow([date, NrItem]);
}
答案 0 :(得分:1)
如何修改?
为了从input
检索值,它会this.parentNode
使用formSubmit()
。这样,getValuesFromForm(form)
NrItem
可以form.NrItem
检索.
.
.
<input onclick="formSubmit(this.parentNode)" type="button" value="Add Row" />
<input onclick="google.script.host.close()" type="button" value="Exit" />
</form>
<script type="text/javascript">
function formSubmit(e) {
google.script.run.getValuesFromForm(e);
}
</script>
。
这是对HTML文件的修改。
sampletext
当this.parentNode
输入到文本框并且选中了sheet1和sheet2的复选框时,{"NrItem":"sampletext","choices":["something1","something2"]}
变为
<br>
<input name="choices" type="checkbox" value="Sheet1" /> sheet1
<br>
<br>
<input name="choices" type="checkbox" value="Sheet2" /> sheet2
<br>
<br>
<input name="choices" type="checkbox" value="Sheet3" /> sheet3
<br>
如果我误解了你的问题,我很抱歉。
如果Sheet1,Sheet2和Sheet3的工作表名称不变,则可以使用以下示例。
var NrItem = form.NrItem,
date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i in sheets) {
for (var j in form.choices) {
if (form.choices[j] == sheets[i].getName()) {
sheets[i].appendRow([date, NrItem]);
}
}
}
namespace WpfTest
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
frmStudent frm = new frmStudent();
frm.Show();
}
}
}
如果这不是你想要的样品,请随时告诉我。