Google表格具有很好的交互式方式来声明性地定义条件格式 . 有没有办法使用App Script编写相同的声明模型?
我有一个生成许多电子表格的脚本 . 我使用Sheet和DataValidation类设置数据和数据验证规则 . 但是,对于条件格式化,我似乎无法做同样的事情 . 我期望找到一个ConditionalFormattingRule对象或类似的东西 .
Note: 我知道可以编写自定义脚本来侦听onEdit trigger . 但是,需要将该脚本添加到每个生成的电子表格中 . 此外,像这样的非声明性规则不会出现在conditional formatting sidebar中 .
我只是试图将红色背景应用于没有 Value 的细胞 .
这不可能吗?
3 回答
我认为,在这种情况下,如果适合您的情况,您将不得不使用解决方法 .
您必须在源电子表格中创建一个模板工作表,该模板工作表具有通过条件格式(由您手动完成)格式化的单元格 .
然后,您的脚本会将此模板表复制到目标电子表格,然后使用带有{formatOnly:true}高级参数的copyTo方法将模板表中一个或一系列单元格的格式复制到您选择的表格中(最后,您可以从目标电子表格中删除此模板表 . (copyTo方法仅在同一电子表格中从一个范围复制到另一个范围) .
像这样的东西:
还可以使用Advanced Sheets Services从Google Apps脚本添加条件格式 .
请务必从脚本中输入 Enable Advanced Google Services . 然后你可以使用
Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId)
使用Google Sheets API v4和 Advanced Sheets Services 添加条件格式浏览每个JSON表示对象以将完整请求拼凑在一起:
AddConditionalFormatRuleRequest
ConditionalFormatRule
GridRange
BooleanRule
BooleanCondition
ConditionType
CellFormat
以下代码将格式化Google表格表格中的交替行: