我试着在谷歌上搜索一段时间的解决方案,但找不到答案。
我有一个带有HTML文件和脚本的谷歌电子表格,我希望能够选择谷歌工作表中的任何单元格,并将其值直接填充到我的HTML文件中的textarea HTML元素中。
一旦我能够实现这个功能,我将在HTML文件中显示之前修改数据,但这超出了这个问题的范围。
设置如下所示:enter image description here
我在"获取数据"的顶部添加了一个按钮,并使用onclick和google.script.run.withSuccessHandler(请参见下面的代码)来完成这项工作,但是,我希望能够做到同样的事情,而不必每次都点击这个按钮。
<button id="Get Data" onclick="getData()"><b>Get Data</b></button>
<script>
function getData() {
google.script.run.withSuccessHandler(updateElement).activeCell();
}
function updateElement(values) {
var column1Value = values[0];
var column2Value = values[1];
var column3Value = values[2];
var column1 = document.getElementById('column1');
column1.value = column1Value
var column2 = document.getElementById('column2');
column2.value = column2Value
var column3 = document.getElementById('column3');
column3.value = column3Value
var column4 = document.getElementById('column4');
column4.value = column3Value
var doneMessage = document.getElementById('doneMessage');
doneMessage.innerHTML = ""
}
</script>
function activeCell(){
var sheet = SpreadsheetApp.getActiveSheet();
var rowIndex = sheet.getActiveCell().getRow();
var column1Value = sheet.getRange(rowIndex, 2).getValue();
var column2Value = sheet.getRange(rowIndex, 3).getValue();
var column3Value = sheet.getRange(rowIndex, 4).getValue();
return [column1Value, column2Value, column3Value]
}
我尝试过使用onmousedown,但它只在将鼠标放在HTML元素上而不是电子表格上时有效,我假设这是因为HTML元素是一个iframe。
我也尝试了onSelectionChange(e),它工作得很好,直到我不知道如何将所选单元格的信息发送到HTML文件。
谢谢你的帮助!
1条答案
按热度按时间5gfr0r5j1#
如果我正确理解了您要执行的操作,我建议您使用计时器而不是单击来刷新数据
addEventListener("DOMContentLoaded")
以执行getData()
window.setTimeout()
(可以修改持续时间)