javascript - 谷歌表格使用脚本检查单元格是否有边框
问题描述
我正在尝试将自定义格式添加到报告中,以便任何使用它的品牌都可以更改其品牌颜色。
我目前正在更改单元格颜色,但我只希望这些单元格在有边框的情况下更改颜色。所以它使用边框作为AND检查。
这是当前版本,如果它们匹配颜色,它将更改单元格。但是,如果将它们更改为白色,然后您想更改为另一种颜色,则整张纸都会改变颜色。因此,我正在考虑如何使一组单元格独一无二,以便脚本仅对这些单元格执行操作。
function colorReplace() {
var spread = SpreadsheetApp.openByUrl('SPREADSHEET_URL');
var doc = spread.getSheetByName("DASHBOARD_NAME");
var settings = spread.getSheetByName("Settings");
// get all the existing active sheet background colours
var cells = doc.getRange(1, 1, doc.getLastRow(), doc.getLastColumn()).getBackgrounds();
var rows = cells.length;
var cols = cells[0].length;
var primary = doc.getRange('E2').getBackground(); // Get background of ref cell
var primaryReplace = settings.getRange('B2').getValue(); // Get background from cell in settings
var border = settings.getRange('B5').getValue(); // Get border colour from cell in settings
//Logger.log(primary);
//Logger.log(primaryReplace);
Boolean for those cells which have a border
// iterate accross
for (var i = 0; i < rows; i++){
for (var j = 0; j < cols; j++){
if (cells[i][j] == primary && cells[i][j] == check ){
// if cells equal cell colour and they have a border. Possibly could just change this to if cells have a border?
cells[i][j] = primaryReplace; // Cell Colour Change
}
}
}
// update backgound colours
doc.getRange(1, 1, doc.getLastRow(), doc.getLastColumn()).setBackgrounds(cells);
}
解决方案
推荐阅读
- node.js - 使用 Axios/Node 下载大量图片
- python - 使用 python 的 UTF-32 解码有问题
- javascript - 我是否应该删除未附加到任何内容且不再使用的 HTML 元素?
- c - 如何在结构中创建添加/编辑/删除功能(C 编程)
- git - 使用 GitLab 和 GitHub 的单独电子邮件处理 GPG 密钥
- java - 如何从 Android 中的 C 服务调用 Java 函数?
- c++ - 为 Win32 应用程序编译代码 - Windows XP 和 Windows Server 2003 R2
- regex - 修复正则表达式,错误匹配两个连续字符
- tfs - 如果访问 Azure DevOps 上的链接,则更改颜色
- asterisk - 如何检测队列中的入站放弃呼叫