我在 Google Apps 脚本中创建了一个文件,如下所示
DocsList.createFile(
"test.csv",
"Row1Col1,Row1Col2 \r\n Row2Col1,RowCol2 \r\n Row3Col1,Row3Col2");
如何以编程方式下载它(例如通过弹出下载对话框)?
我在 Google Apps 脚本中创建了一个文件,如下所示
DocsList.createFile(
"test.csv",
"Row1Col1,Row1Col2 \r\n Row2Col1,RowCol2 \r\n Row3Col1,Row3Col2");
如何以编程方式下载它(例如通过弹出下载对话框)?
尝试使用ContentService,您可以触发下载,甚至可以通过TextOutput.downloadAsFile 方法设置文件名。您还可以设置返回数据的内容 mime 类型,但只能设置为预定义的枚举常量。见他们的例子。
要使用应用程序脚本下载文件,您需要发布应用程序并使用 doGet() 方法(否则“downloadFileAs”将不起作用)
或者...
在 Drive 中创建文件,并在对话框 ui 中提供链接。这里有两个链接选项,一个需要用户登录,另一个不取自这里
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')
其中“下载对话框.html”
是以下文件(也在脚本编辑器中)
<div>
<a target="_blank" href="<?= url1 ?>"> l1 </a>
<br>
<hr>
<a target="_blank" href="<?= url2 ?>"> link 2 </a>
</div>
如果您想在客户端显示下载对话框,则以下代码有效。这是 CSV 文件的示例。
return ContentService.createTextOutput("bbb,aaa,ccc").downloadAsFile("MyData.csv")
.setMimeType(ContentService.MimeType.CSV);