2016-09-14 88 views
0

我有多個工作表(同一工作簿)中的記錄列表。 我目前在我的Google表格中有一個下拉菜單,如果您選擇其中一條記錄,它將刪除包含該記錄的行。 但是,我想要選擇將其移動到另一個工作表或將其刪除。我試圖使用UiApp,但後來發現很多選項已被棄用,現在我不得不使用HTMLService。 所以我想要做的是,一旦我選擇一個記錄,有一個彈出有兩個選項。 選項1:一個移動選項(按鈕),其中包含工作簿中其他工作表名稱的下拉列表,然後將該記錄移動到該工作表 選項2:刪除記錄 選項3:取消。在一個彈出窗口內創建下拉菜單(Googlescript)

這可能嗎?如果是的話,有人能夠引導我走向正確的方向或類似的例子,所以我可以試着弄清楚如何實現這一目標?

謝謝各位提前!

+1

DId你可以看看[sidebars](https://developers.google.com/apps-script/reference/base/ui#showSidebar(Object))? –

+0

是的,我確實研究過。然而,問題是我完全失去了如何在彈出窗口或邊欄中從我的工作表拉出的下拉菜單。然後,當我選擇記錄時,讓它回到工作表執行移動或刪除記錄。我很難包裝我的頭腦,我將如何在HTML頁面中使用它。如果我必須在Google腳本中完成這項工作,我可以做到這一點,但我只需要一點點指導,即如何從HTML頁面中綁定這些內容。謝謝 – User125

回答

0

你可以嘗試創建一個Custom dialogs

一個自定義對話框可以顯示谷歌文檔,表格或表格編輯器中的HTML服務的用戶界面。

對話框打開時,自定義對話框不會掛起服務器端腳本。客戶端組件可以使用用於HTML服務接口的google.script API或用於UI服務接口的服務器處理程序對服務器端腳本進行異步調用。

Code.gs

function onOpen() { 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .createMenu('Custom Menu') 
     .addItem('Show dialog', 'showDialog') 
     .addToUi(); 
} 

function showDialog() { 
    var html = HtmlService.createHtmlOutputFromFile('Page') 
     .setWidth(400) 
     .setHeight(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showModalDialog(html, 'My custom dialog'); 
} 

page.html中

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body> 
    <select> 
     <option>Delete</option> 
     <option>Move</option> 
    </select> 
    </body> 
</html> 

enter image description here 就這樣,嘗試閱讀HTML Service: Communicate with Server Functions

google.script.run是一個異步客戶端的JavaScript API它允許HTML服務頁面調用服務器端的Apps腳本函數。以下示例顯示了客戶端JavaScript中的最基本功能google.script.run - calling a function on the server

這裏是一個示例代碼形式:

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    <script> 
     // Prevent forms from submitting. 
     function preventFormSubmit() { 
     var forms = document.querySelectorAll('form'); 
     for (var i = 0; i < forms.length; i++) { 
      forms[i].addEventListener('submit', function(event) { 
      event.preventDefault(); 
      }); 
     } 
     } 
     window.addEventListener('load', preventFormSubmit); 

     function handleFormSubmit(formObject) { 
     google.script.run.withSuccessHandler(updateUrl).processForm(formObject); 
     } 
     function updateUrl(url) { 
     var div = document.getElementById('output'); 
     div.innerHTML = '<a href="' + url + '">Got it!</a>'; 
     } 
    </script> 
    </head> 
    <body> 
    <form id="myForm" onsubmit="handleFormSubmit(this)"> 
     <input name="myFile" type="file" /> 
     <input type="submit" value="Submit" /> 
    </form> 
    <div id="output"></div> 
</body> 
</html> 

希望這有助於!