javascript - 如何在 Sheets API 中创建 FilterView 后启用它

标签 javascript google-apps-script google-sheets web-applications google-api

简单地说,我使用以下代码片段来使用高级 Google 服务创建过滤器 View

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 应用于用户?

最佳答案

创建过滤器 View 后,您可以检索其 ID 并将其与 fvid=... 附加到电子表格的 URL,如 here 那样。 :

https://docs.google.com/spreadsheets/d/XXXXXX/edit#gid=0&fvid=YYYYYY

要将过滤器 View 应用于用户,用户需要使用包含过滤器 View ID 的 URL 打开电子表格 - 这是唯一的方法。

现在,如果您想动态创建和应用过滤器 View ,您可以将 Apps 脚本代码转换为 Web Appredirect用户访问动态创建的 URL。

换句话说:不要让用户从驱动器中打开电子表格,而是让他通过打开 WebApp URL 并重定向到正确的过滤器 View 来完成此操作。

如果您将 Web 应用程序部署为“访问应用程序的用户”,您甚至可以动态创建不同的筛选器 View ,具体取决于哪个用户打开 Web 应用程序 URL。

关于javascript - 如何在 Sheets API 中创建 FilterView 后启用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60053338/

相关文章:

javascript - CORS 与 socket.io

javascript - 对数组中的范围进行排序

google-apps-script - 是否可以在事件工作表更改时触发事件?

Javascript 平台游戏碰撞检测

javascript - 我想要一个不使用 'click anywhere except this div' 或 'event.stopPropagation();' 的 '.length' 函数

javascript - 如何使用 PDF.js 确定 PDF 的自然页面大小

google-apps-script - Google Apps 脚本 - 从菜单项打开链接

datetime - formatDate() 给出正确的日期 -1 天(Google Apps 脚本)

javascript - 无法将 Object.assign 添加到 Google 表格

javascript - 选择列中给出相应单元格值的单元格