如何使用Google Apps脚本下载创建的csv文件?

时间:2012-12-24 12:44:05

标签: google-apps-script

我在Google Apps脚本中创建了一个文件,如下所示

DocsList.createFile(
   "test.csv", 
   "Row1Col1,Row1Col2 \r\n Row2Col1,RowCol2 \r\n Row3Col1,Row3Col2");

如何以编程方式下载(例如通过弹出的“下载”对话框)?

3 个答案:

答案 0 :(得分:3)

尝试使用ContentService,您可以触发下载,甚至可以通过TextOutput.downloadAsFile method设置文件名。您还可以设置返回数据的内容mime类型,但仅限predefined enum constant。请参阅their examples

答案 1 :(得分:2)

如果要在客户端显示下载对话框,则以下代码可以正常工作。这是CSV文件的一个例子。

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

答案 2 :(得分:1)

要下载带有apps脚本的文件,您需要发布应用程序,并使用doGet()方法(否则" downloadFileAs"赢得工作)

... OR

在云端硬盘中创建文件,并在对话框ui中提供链接。 这里有两个链接选项,一个要求用户登录,另一个不需要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>