2

我打算寫的東西類似於Google Spreadsheets中的File > Download as > *功能,但我希望它是自定義格式。在Google Spreadsheets中寫入自定義文件格式下載器

具體而言,我想將金融交易電子表格轉換爲QIF或OFX文件以導入到會計軟件中。本質上,在UI上按下按鈕將下載當前打開的電子表格的QIF/OFX版本。

我已經試過到目前爲止以下:

  • 發佈服務(通過實施doGet)使用ContentService創建自定義文件,並返回它作爲使用TextOutput.downloadAsFile()下載。如果我直接使用我的瀏覽器調用端點,這將起作用。
  • 嘗試通過window.location將瀏覽器重定向到服務的URL,但似乎在App腳本的上下文中不可用。
  • 嘗試使用UrlFetchApp.fetch讓前端(電子表格)將瀏覽器導航到服務的URL。這也沒有效果(並不令人驚訝)。

那麼,這是正確的方法嗎?我還能如何攻擊這個?

回答

2

看起來這是你必須要做的。

  1. 創建了UiApp
  2. 添加一個鏈接到下載該應用程序裏。
  3. 顯示電子表格

這是一個有點笨重的UiInstance,但它似乎是乾淨的解決方案。

function downloadAsWhatever() { 
    var app = UiApp.createApplication(); 
    app.add(app.createAnchor("Download the file now!", "https://script.google.com/macros/s/[...]/exec")) 
    SpreadsheetApp.getActiveSpreadsheet().show(app.setWidth(300).setHeight(150)); 
} 

您可以根據需要設置應用程序的大小。我選擇將其設置得更小,以便在Spreadsheet屏幕上佔用更少的空間。


現在爲指導用戶到一個新的網頁的最佳方式是創建一個錨部件,並讓他們點擊它。我們知道這不是一個理想的用戶體驗,但它必須足夠必須使用案例。

Source

+0

似乎是唯一可行的方案。乾杯! – 2013-04-15 02:00:25

相關問題