使用新范围更新 Google 工作表“过滤器视图”

2024-01-11

我有一个电子表格,其中设置了各种过滤器视图。通常这很有效,但偶尔会添加新行,我必须手动更新每个过滤器视图中的范围。我尝试在线搜索解决方案,并提出了以下可能更新范围的代码:

function UpdateFilterView() {
    var dataSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
    //for each (var dataSheet in sheets){ 
      var lastRow = dataSheet.getLastRow();
      var lastColumn = dataSheet.getLastColumn();
      var sheetId = dataSheet.getSheetId();
      var filterSettings = {
        "filterViewId": "319575141",
        "range":{
        "sheetId": sheetId,
        "startRowIndex": 1,
        "endRowIndex": lastRow,
        "startColumnIndex": 1,
        "endColumnIndex": lastColumn
        }
       //}
      };


var requests = [{
  "fields": "*",
  "updateFilterView":{
  "filter": filterSettings
  }
 }];
 
  
 Sheets.Spreadsheets.batchUpdate({"requests":requests},sheetId);

 }

我从我发现的帖子中获取了大部分代码(here https://stackoverflow.com/questions/57170590/how-to-write-a-google-script-that-auto-updates-the-filter-range-for-personal-fil?answertab=votes#tab-top)但由于某种原因它不会更新指定的过滤器。我错过了什么吗?另外,当我运行代码“ReferenceError:Sheets 未定义(第 32 行,文件“Code”)”时,出现以下错误,其中引用了“Sheets.Spreadsheets.....”行。

对于这是否可能有什么想法吗?


从您的回复中,我可以确认,在您目前的情况下,高级Google服务启用了Sheets API。由此,我可以确认您的错误消息已更改。为了解决新的问题,这次修改怎么样?

修改要点:

  • 请修改sheetId of Sheets.Spreadsheets.batchUpdate({"requests":requests},sheetId);到电子表格 ID。
  • 请包括"fields": "*"在对象中updateFilterView.

当您的脚本修改时,请修改如下。

修改后的脚本:

function UpdateFilterView() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();  // Added
  var dataSheet = ss.getSheetByName('Data');  // Modified
  var lastRow = dataSheet.getLastRow();
  var lastColumn = dataSheet.getLastColumn();
  var sheetId = dataSheet.getSheetId();
  var filterSettings = {
    "filterViewId": "319575141",
    "range":{
      "sheetId": sheetId,
      "startRowIndex": 1,
      "endRowIndex": lastRow,
      "startColumnIndex": 1,
      "endColumnIndex": lastColumn
    }
  };
  var requests = [{
    "updateFilterView":{
      "filter": filterSettings,
      "fields": "*",  // Modified
    }
  }];
  Sheets.Spreadsheets.batchUpdate({"requests":requests}, ss.getId());  // Modified
}

Note:

  • When filterViewId of 319575141不正确,像这样的错误Invalid value at 'requests[0].update_filter_view.filter.filter_view_id发生。请小心这一点。

参考:

  • 方法:spreadsheets.batchUpdate https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
  • 更新过滤器视图请求 https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#updatefilterviewrequest
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用新范围更新 Google 工作表“过滤器视图” 的相关文章

随机推荐

  • 设置 Android Things 时区

    在 Raspberry Pi 上安装 Android Things 后 时间不正确 我的时区是 GMT 2 并且使用date Z我看到 RPi 的时区是 GMT 如何设置时区 更新 基于米哈尔 哈拉卡尔 https stackoverflo
  • 如何使用 Visual Studio 2010 编写静态 ansi-c 库

    当我在 VS2010 中编写和编译 lib 文件时 我缺少一些东西 我不知何故没有正确标记它们以供导出 控制台命令dumpbin exe headers mylib lib gt stackoverflow txt生成以下输出 我删除了空行
  • 全屏 YouTube 视频、旋转和状态栏 (iOS)

    我在当前的项目中遇到了一个问题 因此我开发了一个简单的应用程序来看看是否可以隔离问题 在我的应用程序委托中 我隐藏了状态栏 application setStatusBarHidden YES animated NO 在我的单视图控制器中
  • Cassandra(复制因子:2,节点:3)和轻量级事务

    我们有一个运行 3 个节点且复制因子为 2 的 cassandra 集群 gt 也许我们应该从一开始就选择 3 但事实并非如此 因此 我们的法定人数 2 2 1 2 假设我们丢失了一个节点 所以现在只有两个 cassandra 节点在线 如
  • Android:不同风格的不同权限

    我有一个具有两种口味的应用程序 只有其中一种需要一些权限 在构建 apk 期间 如何仅针对此风味请求这些权限 这些是所需的权限
  • 类型错误:无法使用灵活类型执行reduce

    我一直在使用 scikit learn 库 我正在尝试使用 scikit learn 库下的高斯朴素贝叶斯模块 但遇到以下错误 类型错误 无法使用灵活类型执行reduce 下面是代码片段 training GaussianNB traini
  • C# 编译器结果在内存中生成?

    我一直在关注这个StackOverflow问题 https stackoverflow com questions 2830160 c sharp referencing a type in a dynamically generated
  • mod_rewrite 规则删除 #!来自网址?

    我正在构建一个带有ajax加载的javascript应用程序 如果任何用户访问其中包含hashbang的URL 我想重写该URL并将其删除 我对 mod rewrite 不太熟悉 但我尝试了一下 RewriteCond REQUEST UR
  • 使用 ggplot 或 R 中的任何其他方法根据计数绘制线宽(大小)

    我有一个长格式的数据集 每个ID 走 3步 每一步 变量名称是step 可以降落在不同的位置 变量名称是里程碑 我想绘制所有路径 因为有一些路径的行进次数较多 所以我想让路径的宽度 大小 与其计数成正比 我想象它是这样的geom line
  • 移动浏览器检测和格式化的最佳实践

    我为一位希望可以通过移动设备轻松访问的客户开设了一个小型网上商店 如何检测用户是否通过移动设备浏览我的网站 当我这样做之后 我应该 检查用户是否有移动设备 然后将其转发到另一个站点 我认为优点是 我可以优化两个网站的屏幕尺寸布局 我可以在两
  • Facebook API 密钥?与应用程序 ID 相同吗?

    我已经通过 facebook 为我的网站设置了一个应用程序 与我在网络上看到的显示 API 密钥的其他屏幕截图不同 我没有 我显示的只是 应用程序 ID 后面跟着 应用程序秘密 所以想知道应用程序 ID 是否与 API 密钥相同 因为我正在
  • 在 Swift 中制作简单的淡入淡出动画?

    我正在尝试用 Swift 制作一个简单的动画 这是淡入 我尝试过 self myFirstLabel alpha 0 self myFirstButton alpha 0 self mySecondButton alpha 0 然后 我有
  • 将 Post 或 PostAndAsyncReply 与 F# 的 MailboxProcessor 一起使用吗?

    我见过不同的片段展示了Put返回的消息unit与 F 的MailboxProcessor 在某些情况下 仅Post方法被使用而其他人使用PostAndAsyncReply 一旦消息被处理 回复通道立即回复 在进行一些测试时 我发现等待回复时
  • Android Wear 设备选择框显示“offline localhost:4444 minSdk (API 20) > deviceSdk (API 1)”

    我正在尝试构建 Android Wear 应用程序 如果我将 minsdk 设置为 20 21 它给出了下面的错误 但如果我将其设置为 19 则会出现以下错误 home bhupinder AndroidStudioProjects MyW
  • 如何通过每种颜色的分数贡献在 n 种颜色之间进行插值?

    我怎样才能在n种颜色之间进行插值 2种颜色的简单情况 首先考虑一个更简单的情况 我们想要找到两种颜色的中点 Color1 is RGB 255 0 0 Red Color2 is RGB 128 128 128 Grey 解决方案是单独考虑
  • 如何向用户实施有限的功能推出(与语言无关)?

    我想知道向选定的用户群推出新网站功能的一些常见或最佳实践 例如 用户可以仅基于总体用户群的百分比 10 部署应该是可定制的 可配置的 并支持任意数量的功能 将部署与特定用户角色或权限 ACL 相关联也很有用 那么 从本质上讲 什么是能够很好
  • @font-face 不起作用

    我下载了一个字体inlove light wf ttf 为了使用该规则 font face 我的文件夹中有 home html and inlove light wf ttf 在我的 CSS 中我有 font face font famil
  • 如何测试“Mosquitto”服务器?

    我是新来的Mosquitto and MQTT 我下载了Mosquitto服务器库 但我不知道如何测试它 有什么办法可以测试一下Mosquitto server 在单独的终端窗口中执行以下操作 启动代理 mosquitto 启动命令行订阅者
  • 我可以将实体字段名称映射到 TypeORM 中的别名列名称吗?

    我正在使用 TypeORM 从 Rails 迁移到 NestJs 由于历史原因 Rails 中的表名和列名是snaked cased 我不想将这种麻烦复制到我们的 NestJs React 端 我可以在 NestJS typeorm 中创建
  • 使用新范围更新 Google 工作表“过滤器视图”

    我有一个电子表格 其中设置了各种过滤器视图 通常这很有效 但偶尔会添加新行 我必须手动更新每个过滤器视图中的范围 我尝试在线搜索解决方案 并提出了以下可能更新范围的代码 function UpdateFilterView var dataS