我是一个新手并且弄清楚谷歌电子表格脚本的可能性。我尝试读出我的spreadsheat的列标题,并将其加载到谷歌脚本的html端。我能够读出一个完整的阵列,但我无法弄清楚如何读出一个表的每个单一范围(例如B1,C1,D1,......)。我的下一个问题是,我事先并不知道我必须在html中添加的列数。
谁能帮帮我?
------ code.gs -------
function doGet() {
return HtmlService.createHtmlOutputFromFile('ProbeGUI')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
//return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
function WriteToSpreadsheet(input) {
var ss = SpreadsheetApp.openById("1PkakB0cZKtzSxJUFULZjJBEPb-7U6XOASI69yOopWRM"); //Der Sheetname lautet ProbeCode
var sheet = ss.getSheetByName("Datenpool");
var firstEmptyRow = sheet.getLastRow() + 1;
var range = sheet.getRange("B"+(firstEmptyRow)); //In " " steht, in welche Spalte geschrieben wird
range.setValue(input);
}
function WriteToFormular() {
var ss = SpreadsheetApp.openById("1PkakB0cZKtzSxJUFULZjJBEPb-7U6XOASI69yOopWRM");
var sheet = ss.getSheetByName("Datenpool");
var LastColumn = sheet.getLastColumn();
// var range = sheet.getDataRange();
var range = sheet.getRange(1, 2, 1, LastColumn);
var values = range.getValues();
// return values[0][ColumnCount];
// Browser.msgBox(values);
return values;
}
---- html代码----
<script language="JavaScript" type="text/javascript">
function SendData() {
google.script.run.WriteToSpreadsheet(document.Formular.IdeenWert.value);
}
function ReadSpreadsheet() {
alert("ReadSpreadsheet");
// google.script.run.withSuccessHandler(add_Item_row).WriteToFormular();
google.script.run.withSuccessHandler(ChooseItem).WriteToFormular();
}
function add_Item_row(ItemNamen) {
var parent = document.getElementById('newDiv');
var child = document.createElement('p');
// var NewItem = ItemNamen[0][1];
child.innerHTML = ItemNamen;
parent.appendChild(child);
}
function ChooseItem(SpreadsheetSpaltenNamen){
alert(SpreadsheetSpaltenNamen);
var i = 0;
alert(i);
while (SpreadsheetSpaltenNamen[0][i] != "") {
function add_Item_row(SpreadsheetSpaltenNamen[0][i])
i++;
}
}
function validate_num(formdata) {
formdata.value=formdata.value.replace(/\D/, '' );
}
</script>
<body onload="ReadSpreadsheet();">
<form name="Formular" action="" >
<div style="position:relative; width:100px; top:20px; " >Restbetrag:</div><div style="position:relative; left:100px; width:100px; height:30px;" id="RestGeld">100</div>
<div style="float:left; width:100px;" id="Item">Item</div><div><input id="WerteID" name="IdeenWert" type="text" size="7" onkeyup="validate_num(this)" onblur="formSubmit(this.value)" /></div>
<div style="clear:both"></div>
<div style="position:relative; top:20px; left:100px; " ><input onclick="SendData();" type="button" value="OK" /></div> <!-- google.script.host.close() -->
</form>
<div id='vendordiv'>
<p>
<input type="Button" value="Spreadsheet auslesen" onclick="ReadSpreadsheet()"/>
</p>
</div>
<div id ='newDiv'>
</div>
</body>
答案 0 :(得分:0)
我尝试了你的代码并在客户端遇到了一些错误。所以我做了一个改变只是为了测试按钮“Spreadsheet auslesen”
onclick="google.script.run.withSuccessHandler(ChooseItem).WriteToFormular();"
我无法找到为什么以你正在进行的方式拨打电话的原因不起作用,我会在找到答案后更新答案。
同样在while循环中的“ChooseItem”函数中,你有“function”,删除它就可以调用函数而不是尝试创建一个新函数。
在那些修改之后,我能够在html中插入标题。 希望它有所帮助。