java - Apache POI 可以将 "color scale"条件格式应用于某个范围吗?

标签 java excel apache-poi

我可以创建具有色阶条件格式的效果(其中单元格的前景色根据当前单元格值与范围内所有单元格的值的比较而变化),但是我似乎找不到 Excel 的实现条件格式。 Apache POI 有能力创建这样的格式化规则吗?

最佳答案

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

sheet.getSheetConditionalFormatting().createConditionalFormattingColorScaleRule()

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

这是显示用法的单元测试:https://svn.apache.org/repos/asf/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.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);

关于java - Apache POI 可以将 "color scale"条件格式应用于某个范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295776/

相关文章:

excel - 如何使用 apache POI 在 Excel 页面上设置标题?

JAVA -> EXE 包在 Windows Server 2008 中无法运行,为什么?

java - java中的Json时间持续时间格式化问题

excel - 在 Excel 公式中使用相对位置

excel - 我可以使此宏更有效或更快速吗?

JAVA+POI API Excel-需要增加列宽

java - 如何使 spring @ManagedOperationParameter 与 scala 一起工作

java - 使用 Java EE 进行简单的工作流程管理

vba - 一张响应 Cells.Clear/writing 的表格比其他表格慢得多

java - 如何使用java在Excel中按列读取?