改变 GAS 中的边框颜色(*不*改变一些)
Changing border colors in GAS (and *not* changing some)
使用 Google Apps 脚本跟进此问题:Set border color & style in spreadsheet programmatically
格式顺序为:.setBorder( top, left, bottom, right, vertical, horizontal, color, style )
根据文档,
"true" 开启格式
"false" 关闭格式
"null" 保持不变
我的问题:"null" 正在关闭格式!
我有一个非常简单的测试脚本:
var right = "red";
var left = "blue";
range.setBorder( null, null, null, true, null, null, right, null );
range.setBorder( null, true, null, null, null, null, left, null );
这不是应该设置右边框为红色,左边框为蓝色吗?
结果只有蓝色。如果我省略蓝线,它会变成红色。
似乎在单个单元格中获得 2+ 种颜色的唯一方法是使用 "null" 单独执行 .setBorder。但是 "null" 正在作为 "false" 并关闭前一个边框。
SpreadsheetApp.flush() 应该解决问题:
range.setBorder( null, null, null, true, null, null, right, null );
SpreadsheetApp.flush();
range.setBorder( null, true, null, null, null, null, left, null );
我只是用上面的答案改写所问的问题,因为以下脚本对 first-timers 更有意义:
var rightBorderOn = true;
var leftBorderOn =true;
var rightBorderColor = "red";
var leftBorderColor = "blue";
range.setBorder( null, null, null, rightBorderOn, null, null, rightBorderColor, null );
SpreadsheetApp.flush();
range.setBorder( null, leftBorderOn, null, null, null, null, leftBorderColor, null );
希望这对一些人有所帮助!
使用 Google Apps 脚本跟进此问题:Set border color & style in spreadsheet programmatically
格式顺序为:.setBorder( top, left, bottom, right, vertical, horizontal, color, style )
根据文档,
"true" 开启格式
"false" 关闭格式
"null" 保持不变
我的问题:"null" 正在关闭格式!
我有一个非常简单的测试脚本:
var right = "red";
var left = "blue";
range.setBorder( null, null, null, true, null, null, right, null );
range.setBorder( null, true, null, null, null, null, left, null );
这不是应该设置右边框为红色,左边框为蓝色吗?
结果只有蓝色。如果我省略蓝线,它会变成红色。
似乎在单个单元格中获得 2+ 种颜色的唯一方法是使用 "null" 单独执行 .setBorder。但是 "null" 正在作为 "false" 并关闭前一个边框。
SpreadsheetApp.flush() 应该解决问题:
range.setBorder( null, null, null, true, null, null, right, null );
SpreadsheetApp.flush();
range.setBorder( null, true, null, null, null, null, left, null );
我只是用上面的答案改写所问的问题,因为以下脚本对 first-timers 更有意义:
var rightBorderOn = true;
var leftBorderOn =true;
var rightBorderColor = "red";
var leftBorderColor = "blue";
range.setBorder( null, null, null, rightBorderOn, null, null, rightBorderColor, null );
SpreadsheetApp.flush();
range.setBorder( null, leftBorderOn, null, null, null, null, leftBorderColor, null );
希望这对一些人有所帮助!