This question already has an answer here:
How to apply a GoogleSheet Filterview via Google Apps Script?
(1个答案)
3个月前关闭。
简而言之,我正在使用以下代码使用Advanced Google Services创建过滤器视图
到目前为止,代码可以正常运行,但是它只是创建FilterView,我正在寻找的是如何以编程方式将此FilterView应用到用户?
(1个答案)
3个月前关闭。
简而言之,我正在使用以下代码使用Advanced Google Services创建过滤器视图
function applyFilter(sheetName, sheetId, colNo, startRowIndex, criteria) {
delFilterViews(sheetName)
var ss = SpreadsheetApp.openById("1cnYgUIdJZShvywco00xttiS293t_H9P7RTsBcOvJbBM");
var ssId = ss.getId();
var dataSheet = ss.getSheetByName("Follow Up Sheet");
var lastRow = dataSheet.getLastRow();
var lastColumn = dataSheet.getLastColumn();
var key = colNo;
var filterSettings = {
"title": criteria,
"range": {
"sheetId": sheetId,
"startRowIndex": startRowIndex,
"endRowIndex": lastRow,
"startColumnIndex": 0,
"endColumnIndex": lastColumn
},
"criteria": {
}
};
filterSettings.criteria[colNo] = {
"condition": {
"type": "TEXT_CONTAINS",
"values": [
{
"userEnteredValue": criteria
}
]
}
}
var requests = [{
"addFilterView": {
"filter": filterSettings
}
}];
}
到目前为止,代码可以正常运行,但是它只是创建FilterView,我正在寻找的是如何以编程方式将此FilterView应用到用户?
最佳答案
创建过滤器视图后,您将获取其ID,并在电子表格的URL后面添加fvid=...
,如here所示:https://docs.google.com/spreadsheets/d/XXXXXX/edit#gid=0&fvid=YYYYYY
要将filterview应用于用户,用户需要使用包含filterview ID的URL打开电子表格-这是唯一的方法。
现在,如果要动态创建和应用filterview,可以将Apps脚本代码转换为Web App,并将redirect用户转换为动态创建的URL。
换句话说:与其让用户从驱动器中打开电子表格,不如让用户通过打开WebApp URL并将其重定向到正确的filterview来进行操作。
如果将WebApp部署为“用户访问应用程序”,甚至可以动态创建不同的过滤器视图,具体取决于哪个用户打开了WebApp URL。
09-20 13:35