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