google-apps-script - 在 API 范围规范中定义整列
问题描述
我可以使用以下语法来引用整个 A、B 和 C 列:
A1:C
下面的脚本将引用完整的可用单元格!
var myRange = {
'sheetId': sheet.getSheetId(),
'startRowIndex': 0,
'endRowIndex': sheet.getLastRow(),
'startColumnIndex': 0,
'endColumnIndex': sheet.getLastColumn()
}
如果用户插入一个新行,这个范围将不会覆盖它。如何更改它以支持整个列A1:C
?
完整脚本如下:
function addConditonalFormat() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
sheet.clearConditionalFormatRules()
var colorMerged = {'red': 222/255, 'green': 235/255, 'blue': 246/255, 'alpha': 0.7}
var colorSkipped = {'red': 222/255, 'green': 235/255, 'blue': 0, 'alpha': 0.7}
var myRange = {
'sheetId': sheet.getSheetId(),
'startRowIndex': 0,
'endRowIndex': sheet.getLastRow(),
'startColumnIndex': 0,
'endColumnIndex': sheet.getLastColumn()
}
var config = [["merged",colorMerged],["skipped",colorSkipped]]
var requests = []
for (var i=0;i<config.length;i++) {
var row = config[i]
var keyword = row[0]
var color = row[1]
Logger.log(keyword + ":" + color)
var cond = {'addConditionalFormatRule': {
'index': 0,
'rule': {
'ranges': [ myRange ],
'booleanRule': {
'format': {'backgroundColor': color},
'condition': {
'type': 'CUSTOM_FORMULA',
'values':[{'userEnteredValue': '=$A:$A="' + keyword + '"'}]},},},} }
requests.push(cond)
}
var format_req = {
'requests': requests,
'includeSpreadsheetInResponse': false,
}
Sheets.Spreadsheets.batchUpdate(JSON.stringify(format_req), ss.getId())
}
运行脚本后,在最后一行之后插入行,条件格式将不适用于新添加的行!
解决方案
简单:参考整张表,不提供任何索引规格。根据DimensionRange
和GridRange
文档,缺少索引表示无界规范。
const theWholeSheet = {
sheetId: sheet.getSheetId()
};
const noFirstRowOrFirstCol = {
sheetId: sheet.getSheetId(),
startColumnIndex: 1,
startRowIndex: 1
};
推荐阅读
- prometheus - 刷新时流畅更改的 Prometheus 图
- wordpress - 通过按钮单击或 ESC 按钮进行页面紧急逃生
- android - 使用布局标签时,ConstraintLayout 内部不允许有元素
- ajax - 特定表(在 SQL Server 中)的记录数对 C# MVC 中的 LINQ 查询响应时间有什么影响
- woocommerce - 单击注册按钮在 woocommerce 中获取注册页面
- asp.net-mvc - 如何将一个 mvc 项目控制器 API 调用到另一个 mvc 项目?
- c - 在 Linux 中接收 SIGINT 和异常句柄
- python - SQLAlchemy 的列文档(Column.doc)是如何实际使用的?
- python - 尝试打开文件时如何解释Django中的python代码?
- visual-studio-code - 跳过 launch.json 的 VS Code 终端 shell 参数