Apache POI — создание условного форматирования, которое ссылается на другие ячейки

Я создаю электронную таблицу XSSF на Java, используя Apache POI. То, что я пытаюсь сделать, это создать формулу условного форматирования, похожую на «если значение в ячейке $ A2 = «X», сделать $ C2 зеленым», а затем применить ее до конца столбца C.

Однако я не видел никаких примеров этого в Интернете — все примеры, которые я видел, имеют дело только с одним столбцом за раз, а не со ссылками. Возможно ли это сделать?

пример условного форматирования


person Slothario    schedule 14.05.2013    source источник


Ответы (2)


Правило условного форматирования, которое вы хотите применить, выглядит примерно так:

 SheetConditionalFormatting scf = sheet.getSheetConditionalFormatting();
 ConditionalFormattingRule cfr1 = scf.createConditionalFormattingRule("(indirect(address(row(), column() - 1))) = \"CDS correct\"");

Формула находит любое значение ячейки, расположенной на два левее текущей ячейки. Затем вы можете использовать CellRangeAddress, соответствующий количеству строк в столбце C, который вы заполнили.

person Dave Ross    schedule 25.08.2014

Что вам нужно, так это поместить их в ( ), чтобы разрешить это. Попробуйте это, в CondiFormat для ячейки C2 используйте формулу, чтобы определить, какие ячейки форматировать и ввести в эту формулу =($F2="CDS correct") Это будет True, когда в вашем столбце F будет указано «CDS правильно»

Надеюсь это поможет,

-Scheballs условное форматирование относительной ссылки

person Scheballs    schedule 14.05.2013
comment
Спасибо за ваш ответ, но я пытаюсь создать такую ​​​​таблицу в программе Java с использованием Apache POI. То есть примерно так: poi.apache.org/ apidocs/org/apache/poi/hssf/usermodel/ - person Slothario; 14.05.2013