2014-04-05 68 views
0

我一直在試圖做到這一點,但似乎無法理解整個畫面。應用腳本:動態創建文件並在瀏覽器中觸發下載

我有一個電子表格增加了自定義腳本,圍繞互聯網和收集的東西。我添加了一個新菜單 - 「下載源數據」,該菜單旨在讓用戶(本例中爲我)以csv格式「下載」原始數據。問題在於,csv中的默認導出並不是我所需要的,我更願意在腳本中創建文件的內容。我使用ContentService。當我按下菜單時,它會創建所需的內容,但我希望腳本在瀏覽器中觸發下載,但這不會發生。

所以我的問題是:是否有可能從一個菜單(ActiveSpreadsheet.addMenu和那裏引用我的功能)做到這一點。如果是,我該如何告訴瀏覽器開始下載帶有創建的TextOutput內容的文件。我曾嘗試downloadAsFile('文件名'),但它什麼也沒做。沒有錯誤顯示。

+0

的TextObject被冒犯

由於塞爾INSAS似乎只是在「goGet」功能且僅當該腳本是要使用作爲應用程序發佈。這很好,我設法做到了。另外在電子表格中創建應用程序用戶界面以顯示應用程序的鏈接,理論上,在瀏覽器中加載時應該觸發下載。這隻適用於我部署應用程序並按'測試您的最新代碼'。當從UI中打開時,它會找不到腳本功能:doGet。怎麼來的? –

+0

只是一個簡單的說明:除了打開新的瀏覽器選項卡或瀏覽瀏覽器中的當前URL似乎是不可能的事實,我已到了一切正常的地步。不得不點擊一個菜單然後點擊一個鏈接似乎是錯誤的。我瞄準的功能類似於默認情況下的功能 - 下載爲...您單擊它並開始下載。我如何做到這一點(即我已經有了網絡應用程序的工作,我只需要從菜單項中瀏覽它的瀏覽器...... –

+0

感謝downvote,它總是一種樂趣,你不會找到一種方法來做你想做的事情,即有一個菜單項,直接重定向到一個url,這將是一個兩步的過程 –

回答

0

所以問題的答案是:單擊自定義菜單時,用戶不可能觸發文件下載。這是一種恥辱:)誰了先,然後才考慮回答:)

0

DriveApp有一個getDownloadUrl()方法,您可以用它在一個小的彈出窗口中顯示一個URL。您必須點擊該網址才能開始下載,因爲沒有用戶操作,無法跟蹤鏈接。

查看this other post對於這樣一個Ui的例子,這是一個標準的url,但方法是完全一樣的。

+0

建議的解決方案假設我已經將文本對象寫爲Drive中的一個文件,我沒有這樣做,主要想法是生成內容,將其作爲csv返回給瀏覽器。 –

+1

一旦你有字符串內容,爲什麼不在驅動器中創建文件?如果你願意,你可以馬上刪除它。 –

+0

1)我將如何觸發電子表格菜單欄中的下載項目2)如何知道何時從應用程序的角度完成下載,以便我可以刪除文件? - 使用用戶界面來顯示必須點擊的URL是不好的UX。我瞄準'選擇菜單項 - >觸發器下載'。這仍然算作用戶操作 - 對嗎? –

相關問題