Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache POI条件格式-GetNumConditionFormattings始终返回0_Java_Excel_Apache Poi_Conditional Formatting - Fatal编程技术网

Java Apache POI条件格式-GetNumConditionFormattings始终返回0

Java Apache POI条件格式-GetNumConditionFormattings始终返回0,java,excel,apache-poi,conditional-formatting,Java,Excel,Apache Poi,Conditional Formatting,我在使用ApachePOI3.9读取Excel工作表中的条件格式时遇到问题。Excel文件是使用MS Excel 2010创建的,添加了一些条件格式(我解压缩了.xlsx文件,检查了sheet1.xml,它有几个x14:conditionalFormat标记),但是sheet.getSheetConditionalFormat().getNumConditionalFormattings()始终返回0。我可以毫无问题地读取其他属性,包括合并的单元格。我错过什么了吗 谢谢 我想我看到了问题所在。P

我在使用ApachePOI3.9读取Excel工作表中的条件格式时遇到问题。Excel文件是使用MS Excel 2010创建的,添加了一些条件格式(我解压缩了.xlsx文件,检查了sheet1.xml,它有几个x14:conditionalFormat标记),但是sheet.getSheetConditionalFormat().getNumConditionalFormattings()始终返回0。我可以毫无问题地读取其他属性,包括合并的单元格。我错过什么了吗


谢谢

我想我看到了问题所在。POI确实支持条件格式,并且只有当值不是对另一个单元格的引用时,它才会正确读取它们。例如,如果我只使用规则格式的单元格,这些单元格包含并选择特定的文本,并且包含并引用一个单元格($a$1),那么POI将不会读取该单元格。如果我将引用更改为静态值(“测试POI”),那么它将得到正确处理


有没有办法强制POI正确处理引用?

SheetConditionalFormatting sheetCF=sheet.getSheetConditionalFormatting()

CellRangeAddress[]区域={CellRangeAddress.valueOf(“N1:N”+rownum)}


发布代码示例和excel内容将对此处有所帮助。代码很简单:工作簿。getSheetAt(0)。getSheetConditionalFormatting()。getNumConditionalFormattings()excel文件包含从主功能区、样式组、条件格式下拉列表中设置的条件格式
        ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.BETWEEN, "481", "499");
        PatternFormatting fill1 = rule1.createPatternFormatting();
        fill1.setFillBackgroundColor(IndexedColors.LIGHT_TURQUOISE.index);
        fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
        sheetCF.addConditionalFormatting(regions, cfRules);