显示驱动器文件列表,并允许用户选择一个

时间:2015-03-31 17:13:43

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

我想创建一个在Google网站中使用的网络应用。该应用程序允许用户在Google云端硬盘中选择一个电子表格,并将文件ID传递给脚本,然后使用getByID函数完成邮件合并。除了选择文件外,我的所有代码都有效。有没有办法允许用户从他们的Google云端硬盘浏览到文件,在树上上下等,就像在文件打开方案中一样?我们正在使用Google Apps for Non-profit,并将列出域名文件。

2 个答案:

答案 0 :(得分:2)

您可以使用DriveApp查询所有用户工作表。

https://developers.google.com/apps-script/reference/drive/drive-app#getFilesByType(String)

您可以构建一个可以发送到webapp的对象,以便用户可以选择合适的工作表。

function getAllSpreadsheets(){
     var sheetList = [];
      var allSheets = DriveApp.getFilesByType(MimeType.GOOGLE_SHEETS);
      while(allSheets.hasNext()){
        var sheet = allSheets.next();
        sheetList.push({"name":sheet.getName(), "id":sheet.getId()});
    }
return sheetList;
}

在您的webapp端,您可以执行以下操作:

<label for="selected-sheet">
      <b>Select spreadsheet</b></label>
     <select id="selected-sheet">
     </select>
<script>
$(function(){
  google.script.run
   .withSuccessHandler(addSheets)
   .withFailureHandler(function(e){alert("Error: "+ e)})
   .getAllSpreadsheets();

function addSheets(options){

var select = $('#selected-sheet');
$.each(options, function (i, item) {
    select.append($('<option>', { 
        value: item.id,
        text : item.name 
    }));
});
}
</script>

答案 1 :(得分:1)

您可以使用Google Picker对话框来执行此功能。阅读我们的Opening Files文档。

Google Picker API上的更多内容也可以在我们的文档中找到。