2013-10-29 53 views
0

我想製作一個谷歌腳本來爲學生類生成文件夾結構。 我想通過電子表格加載學生姓名和電子郵件。在UI中,您應該能夠選擇使用哪個電子表格。在谷歌webapp中選擇電子表格

文件夾結構不是問題,但我在選擇和加載電子表格時遇到問題。

我希望它是一個web應用程序,而不是電子表格應用程序中的腳本。

我應該使用fileUpload並嘗試從blob協調它嗎?任何一個乾淨的解決方案?

回答

1

在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 
    } 
+0

謝謝!這是做的訣竅:) – user2931366

+0

很高興幫助,不要忘記「接受」的答案。謝謝 –