我打算做的是写一些类似于Google Spreadsheets中当前File > Download as > *
功能的内容,但我希望它采用自定义格式。
具体来说,我想将金融交易的电子表格转换为QIF或OFX文件,以便导入会计软件。实质上,按下UI上的按钮将下载当前打开的电子表格的QIF / OFX版本。
到目前为止,我已尝试过以下内容:
doGet
创建自定义文件的服务(通过实施ContentService
)并使用TextOutput.downloadAsFile()
将其作为下载文件返回。如果我直接使用浏览器调用端点,则此方法有效。UrlFetchApp.fetch
让前端(电子表格)让浏览器导航到服务的网址。这也不起作用(并不令人惊讶)。 那么,这是正确的方法吗?我怎么能攻击这个?
答案 0 :(得分:2)
看起来这就是你要做的事情。
它有点笨重,但它似乎是最干净的解决方案。
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));
}
您可以将应用的大小设置为您想要的任何内容。我选择将其设置得更小,以便在电子表格屏幕上占用更少的空间。
现在,将用户定向到新页面的最佳方法是创建一个锚点窗口小部件并让它们单击它。我们知道这不是一个理想的用户体验,但它应该足以满足用例。