Apache POI可以将“色阶”条件格式应用于一个范围吗?

我可以创build具有色阶的条件格式的效果(其中单元格的前景颜色根据当前单元格的值与范围内的所有单元格的值进行比较而有所不同),但我似乎无法findExcel的条件格式的实现。 Apache POI是否有能力创build这样的格式化规则?

答案是肯定的,在版本的Apache POI 3.16。

 sheet.getSheetConditionalFormatting().createConditionalFormattingColorScaleRule() 

阅读这篇文章,了解它的添加时间(3.13testing版2)的详细信息: https : //stackoverflow.com/a/32164925/231860

以下是显示使用情况的unit testing: https : //svn.apache.org/repos/asf/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionFormatting.java

 @Test public void testCreateColorScaleFormatting() throws IOException { Workbook wb1 = _testDataProvider.createWorkbook(); Sheet sheet = wb1.createSheet(); SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingColorScaleRule(); ColorScaleFormatting clrFmt = rule1.getColorScaleFormatting(); assertEquals(3, clrFmt.getNumControlPoints()); assertEquals(3, clrFmt.getColors().length); assertEquals(3, clrFmt.getThresholds().length); clrFmt.getThresholds()[0].setRangeType(RangeType.MIN); clrFmt.getThresholds()[1].setRangeType(RangeType.NUMBER); clrFmt.getThresholds()[1].setValue(10d); clrFmt.getThresholds()[2].setRangeType(RangeType.MAX); CellRangeAddress [] regions = { CellRangeAddress.valueOf("A1:A5") }; sheetCF.addConditionalFormatting(regions, rule1); 

答案是否定的,版本Apache POI版本3.10-FINAL。