使用脚本打印 Google Sheet 中下拉列表中的所有选项 [关闭]

2023-12-20

有没有人有任何脚本可以让我使用 Google Sheet 中的应用程序脚本打印 Drop Down 中的所有选项?


我相信你的目标如下。

  • 您想要使用 Google Apps 脚本从下拉列表类型的 DataValidation 中检索选项值。

在这种情况下,我认为getDataValidation() and getCriteriaValues()可用于实现您的目标。

示例脚本:

在此示例脚本中,选项值是从单元格“A1”中的 DataValidation 检索的。

const sheet = SpreadsheetApp.getActiveSheet();
const dataValidation = sheet.getRange("A1").getDataValidation();
const check = [SpreadsheetApp.DataValidationCriteria.VALUE_IN_RANGE, SpreadsheetApp.DataValidationCriteria.VALUE_IN_LIST];
if (dataValidation && check.includes(dataValidation.getCriteriaType())) {
  const [criteria] = dataValidation.getCriteriaValues();
  const res = criteria.toString() == "Range" ? criteria.getValues() : criteria;
  console.log(res)
}

Note:

  • 如果要从范围内的多个 DataValidation 检索选项值,还可以使用以下脚本。

      const sheet = SpreadsheetApp.getActiveSheet();
      const dataValidations = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).getDataValidations();
      const check = [SpreadsheetApp.DataValidationCriteria.VALUE_IN_RANGE, SpreadsheetApp.DataValidationCriteria.VALUE_IN_LIST];
      const res = dataValidations.reduce((ar, r, i) => {
        r.forEach((c, j) => {
          if (c && check.includes(c.getCriteriaType())) {
            const [criteria] = c.getCriteriaValues();
            ar.push({row: i + 1, column: j + 1, values: criteria.toString() == "Range" ? criteria.getValues() : criteria});
          }
        });
        return ar;
      }, []);
      console.log(res)
    
  • 如果是getDataValidations(),当下拉列表为空值时,getDataRange()无法检索范围。所以在这个样本中,getMaxRows() and getMaxColumns()被使用。这样,上面的第二个脚本就可以检索工作表中下拉列表类型的所有 DataValidations。

参考:

  • 获取数据验证() https://developers.google.com/apps-script/reference/spreadsheet/range#getdatavalidation
  • 数据验证类 https://developers.google.com/apps-script/reference/spreadsheet/data-validation
  • 获取数据验证() https://developers.google.com/apps-script/reference/spreadsheet/range#getdatavalidations
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用脚本打印 Google Sheet 中下拉列表中的所有选项 [关闭] 的相关文章

随机推荐

  • Sql Server:选择性 XML 索引未得到有效使用

    我正在探索提高应用程序性能的方法 但我只能在有限程度上影响数据库级别 SQL Server 版本是 2012 SP2 有问题的表和视图结构是 我不能真正影响这个 注意 xml 文档总共可能有几百个元素 CREATE TABLE Orders
  • 默认 Android 时区列表

    我想知道我是否可以获得 android 版本 2 3 3 时区选择列表的默认代码 String ids TimeZone getAvailableIDs for int i 0 i
  • 在Python中加载图像进行处理的最快方法

    我想以 numpy 数组的形式在我的 8gb 内存中加载超过 10000 个图像 到目前为止 我已经尝试过 cv2 imread keras preprocessing image load image pil imageio scipy
  • 变量 - 海王星上的 Gremlin

    我位于 Gremlin 控制台并连接到 AWS Neptune 数据库 g V hasLabel Risk toList 提供了预期的结果 但是当我尝试将结果分配给变量时 risks g V hasLabel Risk toList 我收到
  • 在 Django/South 中,如何在数据迁移期间从不同的应用程序创建模型的实例

    我需要执行模型的数据迁移Answer in app Question 在该脚本中存在依赖关系 因此我需要创建模型的实例Chapter在应用程序中Journal 所以 我将其编码如下 def forwards self orm for ans
  • 将 ComboBoxColumn 绑定到 WPF DataGrid 中 DataGrid 的 ItemsSource 的集合

    请帮助我弄清楚如何在 WPF 的 DataGrid 中使用 ComboBoxColumn 我正在尝试创建一个设备列表 其中每个设备在 日志 字段中都有动态状态列表
  • AngularJS ui-router 登录验证

    我是 AngularJS 的新手 我对如何在以下场景中使用 Angular ui router 感到有点困惑 我正在构建一个由两部分组成的网络应用程序 第一部分是带有登录和注册视图的主页 第二部分是仪表板 成功登录后 我创建了一个index
  • 设计数据仓库、事实表和维度表的逻辑模型

    你好 我是数据仓库的新手 作业要求我实现逻辑设计 物理和实现 你会如何在数据仓库中对此进行建模 我希望设计一个数据仓库来给出与棒球联盟相关的统计数据的答案 对于玩家 进攻中 击球手击球次数 得分是多少 安打次数 双打和三打数 打了多少个本垒
  • 提取模式后的字符串

    我想提取 client id 和 id 之后的数字 并将每行中的 client id 和 id 配对 例如 对于以下日志行 User client id 03 results RelatedUser id 204 weight 10 Rel
  • 没有名为 fcntl 的模块

    我正在尝试使用 IronPython 2 7 在 NET 4 0 上使用 IronPython 执行此方法 我使用的是 Windows 7 import os import re import nltk import urllib impo
  • 如何在 JavaScript 中检查 JSON 字符串是否有值?

    有什么方法可以检查 json 字符串是否具有值 字符或字符串 这是示例 firstName John lastName Smith age 25 address streetAddress 21 2nd Street city New Yo
  • WPF 某些图像在加载时会旋转

    我是 WPF 新手 找不到解决方法 我有一个在 XAML 中定义的基本图像控件 我正在将位图图像动态加载到此控件 问题是 当加载图像控件时 某些位图在图像控件中翻转 并且我想以其默认方向加载所有图像 这是我的 XAML
  • Pyspark 与 Elasticsearch

    我将 Pyspark 与 Elasticsearch 结合使用 我注意到 当您创建 RDD 时 它不会在任何收集 计数或任何其他 最终 操作之前执行 当我将转换后的 RDD 的结果用于其他事情时 是否可以执行和缓存转换后的 RDD 正如我在
  • 正则表达式检测字符重复

    我使用表达式来检测字符串中重复的一个字符 if str replace g length gt 1 现在 我希望检测到多个重复的字符 例如 让我们尝试检测 或 的重复项 Wordwithone here match Word withdup
  • 如果未安装.NET 3.5,如何避免 FileNotFoundException?

    如果您尝试在未安装此版本 NET Framework 的 Windows 计算机上启动 NET 3 5 应用程序 您会收到FileNotFoundException对于某些系统程序集 例如 System Core 3 5 0 0 是否可以捕
  • 将 UIButton 旋转 360 度

    我一直在尝试运行一个旋转我的动画UIButton360 度使用此代码 UIView animateWithDuration 3 0 animations self vineTimeCapButton transform CGAffineTr
  • 将对象设置为 nil 时不会调用 dealloc 方法

    我有个问题 我首先创建了一个扩展 NSObject 的对象 我提供了描述和 dealloc 方法的重写 这是我的 Employee m 文件 implementation Employee NSString description retu
  • 错误:不兼容的类型:Fragment 无法转换为 MapFragment

    在我的项目中 我使用带有选项卡的导航抽屉 在其中一个选项卡中 我想调用谷歌地图 但我遇到了这个错误 Error incompatible types Fragment cannot be converted to MapFragment 包
  • .NET Core DI,为包注册默认实现

    如何使用 NET Core 的 IoC 容器注册默认实现 并提供一种覆盖现有实现的方法 例如 我可能想创建一个包 为某些服务提供默认实现 namesapce Package public interface ISomeService pub
  • 使用脚本打印 Google Sheet 中下拉列表中的所有选项 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有人有任何脚本可以让我使用 Google Sheet 中的应用程序脚本打印 Drop Down 中的