0

我試圖使用電子表格作爲數據庫,其中每張表都是一張表,並且一個人的名字被用作主鍵(這看起來不是最好的解決方案,但好的電子表格界面讓我喜歡這個解決方案,而不是嘗試使用ScriptDB。) 我想要做以下事情:當您在工作表上選擇一個名稱並按下我添加的菜單上的按鈕時,函數會在另一個表和屏幕上執行搜索,然後在另一個表中顯示該查詢的所有結果,顯示只有該表包含的屬性記錄(稍後我想添加從GDocs模板生成文本文件的可能性)。 我的問題是: 1)考慮到這個屏幕/面板UI的可變長度(因爲其他表中的記錄數量可能有所不同),在Google Apps腳本中創建此面板/ UI的最佳方式是什麼? (我不想使用Logger.log,因爲我想添加一個按鈕來將查詢轉換爲文件)如何實現查詢功能將Google電子表格用作數據庫?

2)除此解決方案(在生成的二維數組中搜索):

function test(){ // to test the find function with an argument, 'any' in this case 
    var result = findItem('any'); 
    if(result){Logger.log(result.getA1Notation())}else{Logger.log('no luck !')}; 
} 

function findItem(item){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var data = ss.getDataRange().getValues() 
    for(var n = 0;n<data.length;++n){ 
    if(data[n].indexOf(item)>-1){ // this is a "strict" find, ie the value must be the entire search item. If you want to do partial match you should compare differently... 
     return (ss.getRange(n+1,data[n].indexOf(item)+1)); // if found return the range. note the +1 because sheets have 1 index while arrays have 0 index 
    } 
    } 
    return false;// if we come to the end of sheet without result... 
} 

有一種替代方法來執行這樣的查詢嗎?

感謝您的幫助!

回答

0

創建一個UI實例。然後在主面板內的可滾動面板是這樣做的最好方法,然後使用數組來搜索數據。我通常創建標題主體和頁腳面板,主體可滾動

相關問題