2013-08-27 66 views
1

我想問一下,是否有一種方法可以在谷歌電子表格中爲某個範圍啓用腳本過濾?(我不想選擇一個範圍,然後點擊'數據「,然後打開過濾器)google電子表格腳本 - 通過腳本啓用過濾器範圍

我知道過濾器將保留在現有工作表中。但是,我嘗試應用篩選器生成的腳本生成的新工作表?

我的想法是

變種電子表格= SpreadsheetApp.getActive();

var infoSheet = spreadsheet.insertSheet('sheetName',spreadsheet.getNumSheets());

infoSheet.getRange(1,1,5,5)。 - >啓用過濾器?

非常感謝,

回答

2

簡短的答案是 「否」。 看來,GAS既不支持獲取,也不支持設置列的過濾條件,至少根據this open issue

另一種解決方案是對GAS進行過濾和排序,並將不同的結果推送到不同的列或表中。

1

現在,您可以使用Google表格高級服務應用過濾器。 首先,您需要啓用Google Sheets API。對於接下來的步驟,在下面的鏈接中提到:

https://developers.google.com/sheets/api/quickstart/apps-script

之後,你可以使用下面的函數應用過濾器。

function applyFilter() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ssId = ss.getId(); 
    var dataSheet = ss.getActiveSheet(); 
    var lastRow = dataSheet.getLastRow(); 
    var lastColumn = dataSheet.getLastColumn(); 
    var sheetId = dataSheet.getSheetId(); 

    var filterSettings = { 
    "range": { 
     "sheetId": sheetId, 
     "startRowIndex": 0, 
     "endRowIndex": lastRow, 
     "startColumnIndex": 0, 
     "endColumnIndex": lastColumn 
    } 
    }; 
    var requests = [{ 
    "setBasicFilter": { 
     "filter": filterSettings 
    } 
    }]; 
    Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId); 
} 
相關問題