Я устанавливаю условное форматирование с помощью API Excel Javascript, который выполняет различные виды проверки ошибок. Например, если пользователь вводит что-либо кроме «foo» или «bar» в диапазоне A1: A10, тогда условное форматирование выделит ячейку красным цветом.
Я пытаюсь написать функцию, которая возвращает список всех ячеек в A1: A10, которые выделены красным без повторного прохождения данных и проверки, является ли значение "foo" или "bar". Я просто хочу получить список ячеек, которые условное форматирование сделало красным.
Когда я загружаю свойство format/fill/color
, используя range.getCellProperties()
, оно возвращает белый (#FFFFFF
), даже когда отображается условное форматирование ячейка заполняется красным цветом. Как получить цвет заливки ячейки после оценки условного форматирования?
Нажмите здесь, чтобы получить код , который воспроизводит эту проблему. Легко запустить это в Script Lab. Также отправьте код ниже:
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
// setup
var rangeWithValues = sheet.getRange("A1:A5");
rangeWithValues.values = [["foo"], ["bar"], ["foo"], ["bar"], ["foo"]];
var conditionalFormatRange = sheet.getRange("A1:A10");
conditionalFormatRange.conditionalFormats.clearAll();
var conditionalFormat = conditionalFormatRange.conditionalFormats.add(Excel.ConditionalFormatType.custom);
conditionalFormat.custom.rule.formula = `=NOT(OR(A1="foo",A1="bar"))`;
conditionalFormat.custom.format.fill.color = "red";
await context.sync();
// get cell props
var rangeProps = conditionalFormatRange.getCellProperties({
address: true,
format: {
fill: {
color: true
}
}
});
await context.sync();
// output vals
rangeProps.value.forEach(rowProps => {
rowProps.forEach(cellProp => {
console.log("address: " + cellProp.address + "; fill color: " + cellProp.format.fill.color);
})
})
});