2013-02-05 143 views
0

將電子表格生成到HTML表格時遇到問題。此後:HTML Service- Apps scripts。我不清楚如何定義變量htmlOutput或如何顯示/返回它。謝謝你的想法。將Google電子表格數據動態轉換爲HTML

function doGet() { 
var t = HtmlService.createTemplateFromFile('myTemplate'); 
var htmlOutput = t.evaluate(); 
return htmlOutput; 
} 

我的HTML模板 'myTemplate.html' 是:

<html> 
<table> 
<? var sheet = SpreadsheetApp.openById("ID").getSheetByName("Results-List"); 
var lastRow = sheet.getLastRow(); 
var myRange = sheet.getRange("A2:G"+lastRow); 
var data = myRange.getValues(); 
for (var i = 0; i < data.length; ++i) { ?> 
<tr> 
    <? for (var j = 0; j < data[i].length; ++j) { ?> 
    <td><?= data[i][j]?></td> 
    <? } ?> 
</tr> 
<? } ?> 
</table> 
</html> 
+1

你得到什麼錯誤?我用不同的電子表格和表名稱相同的代碼,它工作正常,並顯示HTML表沒有任何問題。 –

回答

0

只是一個建議,我沒有把在註釋中,因爲它需要一些高級格式化...

你在你的例子中顯示的html模板保存爲'myTemplate.html',你是用擴展名來命名它還是顯示html擴展名,因爲它在屏幕上顯示?

我注意到,如果html文件被命名爲myTemplate.html或者只是myTemplate這兩個文件在腳本編輯器界面中都以相同的方式顯示,但它們確實是不同的文件。這可能是是錯誤的來源。

爲了使事情更清楚,這裏是說明2截屏: enter image description here

enter image description here

正如你可以看到,這兩個文件顯示在左邊的列相同的,儘管它們被命名爲不同的。 個人而言,我不會爲html文件添加擴展名,因爲環境會自動識別文件類型。

+0

感謝您的輸入,你們倆。文件名不是問題。 我其實並沒有得到任何錯誤,它似乎運行,但沒有顯示。我也嘗試了第二種方法,但它不喜歡教程中所示的_spreadsheet.show_方法的語法。 – user2012403

0

我能夠得到此代碼的工作。希望這可以幫助別人:(注意:是沒有必要)

function doGet() { 
var t = HtmlService.createTemplateFromFile('myTemplate'); 
var htmlOutput = t.evaluate(); 
var doc = SpreadsheetApp.getActive(); 
doc.show(htmlOutput); 
} 
+0

你應該提到,你試圖在電子表格中展示這個用戶界面......以do get開頭的函數通常用作獨立應用程序或站點頁面,這就是爲什麼沒有人可以給出適當的答案。您應該閱讀[關於此事的文檔](https://developers.google.com/apps-script/html_service#DeployingWeb) –

相關問題