使用应用脚本将Google云端硬盘中的文件加载到表单中

时间:2014-08-07 10:23:44

标签: google-apps-script google-drive-api

目前,我想使用应用脚本来填充表单。然后我们要将Google云端硬盘中的文件加载到此表单中。

所有结果将以表格形式显示为链接。

但是,到目前为止,我仍然没有任何从驱动器加载文件的功能。

感谢您对此案件的帮助。 谢谢, KN

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,我想你想将(ny)文件的CONTENTS加载到表单上的小部件中。

不幸的是,使用GAS构建UiApp是不可能的 您可以显示图像和纯文本文件以及其他几种类型,但不能显示所有文件 如果您尝试显示html文件,则只能看到文本。没有图片,没有链接等。

//   list of HTML tags that are permitted:
//     B, BLOCKQUOTE, BODY, BR, CENTER, CAPTION, CITE, CODE, DIV, EM, 
//     H1, H2, H3, H4, H5, H6, HR, I, LABEL, LEGEND, LI, OL, P, SPAN,
//     STRONG, SUB, SUP, TABLE, TBODY, TD, THEAD, TITLE, TR, TT, UL     

这是因为Caja剥离了其他所有东西。

我一直试图做同样的事情(最近),但我最终还是做了别的事情'。
所以我决定创建一个包含文件的flextable,我为每个文件创建了一个锚点。这样做,用户可以单击一个文件并打开它。

如果要引用驱动器上的文件,可以创建包含

的链接
 var driveUrl = 'https://drive.google.com/uc?export=view&id=';

并将其与fileId合并为urlFile以获取锚点。

   var row = 0;
   var flxTable = app.createFlexTable();
   var files    = DriveApp.getFiles();
   while (files.hasNext())
   {
      var file     = files.next();
      var fileId   = file.getId();
      var fileName = file.getName();
      var urlFile  = driveUrl + fileId;
      var anchor   = app.createAnchor(fileName, urlFile);
      flxTable.setWidget(row++, 0, anchor);
   }

可能你会有太多文件使用上面的代码显示它们(加载时间太长),所以你必须小心显示那时需要查看所需的文件然后加载其他人。