我想製作一個谷歌腳本來爲學生類生成文件夾結構。 我想通過電子表格加載學生姓名和電子郵件。在UI中,您應該能夠選擇使用哪個電子表格。在谷歌webapp中選擇電子表格
文件夾結構不是問題,但我在選擇和加載電子表格時遇到問題。
我希望它是一個web應用程序,而不是電子表格應用程序中的腳本。
我應該使用fileUpload並嘗試從blob協調它嗎?任何一個乾淨的解決方案?
我想製作一個谷歌腳本來爲學生類生成文件夾結構。 我想通過電子表格加載學生姓名和電子郵件。在UI中,您應該能夠選擇使用哪個電子表格。在谷歌webapp中選擇電子表格
文件夾結構不是問題,但我在選擇和加載電子表格時遇到問題。
我希望它是一個web應用程序,而不是電子表格應用程序中的腳本。
我應該使用fileUpload並嘗試從blob協調它嗎?任何一個乾淨的解決方案?
在doGet結構中使用基本的UI元素應該相當容易。 我認爲您需要選擇的電子表格全部放在名爲'dataSpreadsheets'的文件夾中,但您當然可以根據您的個人偏好進行定製。
試試這個小碼:(test app available here,要求授權,因爲您的帳戶作品)
function doGet() {
var app = UiApp.createApplication()
var panel = app.createVerticalPanel().setWidth('100%').setStyleAttributes({'padding':'50px','backGround':'#eeeeee'});
var list = app.createListBox().setName('list');
var handler = app.createServerHandler('getSS').addCallbackElement(panel);
var btn = app.createButton('Select this spreadsheet', handler);
var ssList = DriveApp.getFoldersByName('dataSpreadsheets');
while (ssList.hasNext()){
var folder = ssList.next();
}
if(folder!=null){
var ss = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
while (ss.hasNext()){
var spreadSheet = ss.next();
list.addItem(spreadSheet.getName(),spreadSheet.getId())
}
}else{
app.add(panel.add(app.createHTML('No folder named "dataSpreadsheets" in your Drive')));
return app;
}
app.add(panel.add(list).add(btn))
return app;
}
function getSS(e){
var ss = SpreadsheetApp.openById(e.parameter.list);
Logger.log(ss.getDataRange().getValues());
// do what you have to do
}
沒有理由重新發明一個文件選擇器,當氣體都有自己的filepicker彈出對話框。用它。對於uiapp請參閱https://developers.google.com/apps-script/reference/ui/docs-list-dialog
謝謝!這是做的訣竅:) – user2931366
很高興幫助,不要忘記「接受」的答案。謝謝 –