Javascript GoogleSheets使用脚本检查单元格是否有边框
我正在尝试向报表中添加自定义格式,以便任何使用它的品牌都可以更改其品牌颜色 我目前有细胞的颜色变化,但我只希望这些细胞改变颜色,如果他们有一个边界。因此,它使用边界作为一个和检查 这是当前版本,如果单元格与颜色匹配,将更改单元格。但是,如果将它们更改为白色,然后您要更改为另一种颜色,则整个纸张将更改颜色。所以我在考虑如何使一组单元格唯一,以便脚本只对这些单元格执行操作Javascript GoogleSheets使用脚本检查单元格是否有边框,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在尝试向报表中添加自定义格式,以便任何使用它的品牌都可以更改其品牌颜色 我目前有细胞的颜色变化,但我只希望这些细胞改变颜色,如果他们有一个边界。因此,它使用边界作为一个和检查 这是当前版本,如果单元格与颜色匹配,将更改单元格。但是,如果将它们更改为白色,然后您要更改为另一种颜色,则整个纸张将更改颜色。所以我在考虑如何使一组单元格唯一,以便脚本只对这些单元格执行操作 function colorReplace() { var spread = SpreadsheetApp.openByUr
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);
}
函数colorReplace(){
var spread=SpreadsheetApp.openByUrl(“电子表格URL”);
var doc=spread.getSheetByName(“仪表板名称”);
var settings=spread.getSheetByName(“设置”);
//获取所有现有的活动工作表背景色
var cells=doc.getRange(1,1,doc.getLastRow(),doc.getLastColumn()).getBackgrounds();
var行=cells.length;
var cols=单元格[0]。长度;
var primary=doc.getRange('E2').getBackground();//获取ref单元格的背景
var primaryReplace=settings.getRange('B2').getValue();//从设置中的单元格获取背景
var border=settings.getRange('B5').getValue();//从设置中的单元格获取边框颜色
//Logger.log(主);
//Logger.log(primaryReplace);
有边框的单元格的布尔值
//迭代存取
对于(变量i=0;i
我在range类中没有看到任何get border命令。也许您可以将numberformat设置为某个唯一的字符串,以标识哪些单元格发生了颜色变化。numberformat可以是2d数组,因此可以通过循环索引读取,并将其设置回更改后的状态colors@cooper谢谢你的回复。我查看了文档,发现了一种检查边界的方法。谷歌幻灯片有用于边框的getFillColor。我可能想尝试添加一些独特的东西,就像你提到的,但我想我会看看是否有人有针对边境的运气。同时,我将尝试您提到的格式。您也可以尝试将背景颜色设置为某种奇怪的颜色。我在range类中没有看到任何get border命令。也许您可以将numberformat设置为某种唯一的字符串,以识别哪些单元格发生了颜色更改。numberformat可以是2d数组,因此可以通过循环索引读取,并将其设置回更改后的状态colors@cooper谢谢你的回复。我查看了文档,发现了一种检查边界的方法。谷歌幻灯片有用于边框的getFillColor。我可能想尝试添加一些独特的东西,就像你提到的,但我想我会看看是否有人有针对边境的运气。我会尝试一下你刚才提到的格式,你也可以试着把背景颜色设置成一些奇怪的颜色。