2012-12-24 129 views

回答

3

嘗試使用ContentService,可以觸發下載,甚至通過TextOutput.downloadAsFile method設置文件名。您也可以設置返回數據的內容MIME類型,但僅限於predefined enum constant。見their examples

+0

謝謝,但每當我嘗試在JsonP示例中提供的代碼,我得到以下錯誤:「未捕獲的SyntaxError:意外的令牌<」,任何想法如何測試它? –

+0

我爲最後一條評論中存在的問題添加了一個新線程,如果您也可以在這個問題上伸出援助之手,那將非常棒!您可以通過以下鏈接找到它:http://stackoverflow.com/questions/14041124/jsonp-with-google-apps-script,謝謝:) –

2

如果你想顯示在客戶端的下載對話框,然後下面的代碼工作。這是一個CSV文件的例子。

return ContentService.createTextOutput("bbb,aaa,ccc").downloadAsFile("MyData.csv") 
    .setMimeType(ContentService.MimeType.CSV); 
+1

無法在Chrome 55.0.2883.95(64位)爲我工作。我創建了一個附加到包含上述功能的電子表格的Apps腳本。當我嘗試運行該功能時,我看到「準備執行」,然後是「運行功能...」。沒有SaveAs對話框出現並且沒有文件被寫入。還有什麼需要使其工作? –

+0

同樣在這裏,沒有任何反應...... –

1

下載與應用程序腳本,你需要可以發佈應用程序文件,並使用doGet()方法(否則「downloadFileAs」將無法正常工作)

OR ...

在Drive中創建文件,並在對話框中提供一個鏈接。 這裏是連接兩個選項,一個用戶需要在其他中記錄不taken from here

var dat=getFileDataFromAnotherFunction(); 
    var file = DriveApp.createFile('name.csv',dat); 
    var t = HtmlService.createTemplateFromFile('DownloadDialog'); 
    t.url1 = getDlUrl(file); 
    t.url2 = file.getDownloadUrl().replace('&gd=true','') 
    rt = t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); 
    uia.showModalDialog(rt,'Download the csv') 

其中「DownloadDialog.html」

是以下文件(另在腳本編輯器)

<div> 
<a target="_blank" href="<?= url1 ?>"> l1 </a> 
<br> 
<hr> 
<a target="_blank" href="<?= url2 ?>"> link 2 </a> 
</div> 
+1

'.setSandboxMode()'不再需要了(我想它甚至會在拋出錯誤時調用) –

相關問題