gpt4 book ai didi

javascript - 使用脚本将 HTML Web 应用表数据发送回 Google 表格

转载 作者:行者123 更新时间:2023-12-01 03:56:33 27 4
gpt4 key购买 nike

我正在创建一个 Google HTML Web 应用程序,允许多个用户进入并报告他们的信用卡费用。首先,我将原始数据报告粘贴到 Google 电子表格中,然后启动 HTML Web 应用程序,在 HTML 表格中显示用户交易。我还在最后一列中添加了下拉框,以允许用户选择每笔交易的费用类型。

我需要帮助弄清楚如何将用户从下拉列表中选择的数据发送回 Google 表格。我希望当用户单击提交按钮时发回此信息。

这是我到目前为止所拥有的:

index.html

 <? 
var ss = SpreadsheetApp.openById('myID');
var HomeSheet = ss.getSheetByName('Home');
var StoreNum = HomeSheet.getRange(5, 2).getValue();
var StoreSheet = ss.getSheetByName(StoreNum);
var data = StoreSheet.getRange('A7:I' + lastRow('A',StoreNum)).getValues();
?>
<h2>Location: <?= StoreNum ?></h2>

<button onclick='buttonFunction()'>Submit</button>

<body style='background-color:#cccccc'>
<table class='myTable' border='1'>
<th align='center'>Settlement Date</th>
<th align='center'>Purchase Date</th>
<th align='center'>Purchase Time</th>
<? for (var i = 0; i < data.length; i++) { ?>
<tr>
<? for (var j = 0; j < data[i].length; j++) { ?>
<td align='center'>
<?= data[i][j] ?>
</td>
<? } ?>
<td align='center'>
<form>
<select>
<option value="Select Type">Select Type</option>
<option value="Food">Food</option>
<option value="M&R">M&R</option>
<option value="Office Sup">Office Sup</option>
<option value="Other">Other</option>
</select>
</form>
</td>
</tr>
<? }?>
</table>
</body>

代码.gs

function doGet() {
return HtmlService.createTemplateFromFile('index').evaluate()
}

function include(file) {
return HtmlService.createHtmlOutputFromFile(file).getContent();
}

function submitRequest() {
var table = document.getElementsByClassName('myTable')[0];
var tableRow = table.rows[1][8];
var tableContent = tableRow.firstChild.textContent;
StoreSheet.getRange('D15:D18').setValues(tableContent)
}

我尝试执行上述功能,这是我从某处找到的,但我得到 "document not defined"错误。我很确定这是因为 document.getElementsByTagName需要在 <script> 中调用HTML 文件的格式,但我不太确定从这里开始到哪里,我已经成功地将 Google 表格数据转换为 HTML,但不能向后转换。

这是表格的图像,如果它有助于可视化......我不确定是否应该通过表格或下拉框元素来获取数据。 1]

编辑:已确认工作

(胡安·迭戈的回答)上面的index.html文件

代码.gs:

function setValue(value) {
var ss = SpreadsheetApp.openById('myID');
var HomeSheet = ss.getSheetByName('Home');
var StoreNum = HomeSheet.getRange(5, 2).getValue();
var StoreSheet = ss.getSheetByName(StoreNum);

StoreSheet.getRange('E1').setValue(value)
}

脚本.html

<script>

function onSuccess() {
alert('Your request has ben submitted');
}

function buttonFunction() {
var Row = document.getElementById("tablerow");
var Cells = Row.getElementsByTagName("td");
var cellvalue = (Cells[0].innerText);

google.script.run.withSuccessHandler(onSuccess).setValue(cellvalue);
}

</script>

最佳答案

submitRequest() 应该在前端并在后端回调发送 HTML 表单数据的函数

查看此 stackoverflow 帖子:How to submit HTML form into a Sheet?

Google 文档 Class google.script.run

这里的想法是将函数放在前端:

<script>
function submitRequest(){
google.script.run.withSuccessHandler(success).[YOUR_BACKEND_FUNCTION]([YOUR_FORM_VALUES]);
}
</script>

Tha 会在后端给你一个可以处理的对象

关于javascript - 使用脚本将 HTML Web 应用表数据发送回 Google 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42619639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com