对于 HSSF 内置颜色,是否有其他方法可以避免 Apache POI 中的弃用?

Is there any alternate way to avoid deprecation in Apache POI, for HSSF built-in colors?

在我的代码中,如果文本是 "PASS",我想更改 HSSFWorkbook 特定列的单元格颜色。但是当我写代码的时候,有很多方法和常量,比如 BRIGHT_GREEN.index, setFillPattern, SOLID_FOREGROUND 已弃用。我在 Apache POI 官方网站上搜索了一个替代方案,但那里给出的代码也已弃用。我知道如果我提到 @deprecation 标签没有问题,但有时在 100-150 行(行)之后,单元格颜色没有改变。谁能告诉我有没有其他方法可以避免@deprecation?仅供参考:我正在使用 poi-bin-3.17-beta1-20170701 罐子。 提前致谢:)

if(cell.getStringCellValue().equalsIgnoreCase("Pass")){
                    HSSFCellStyle style = workbook.createCellStyle();
                    style.setFillForegroundColor(HSSFColor.BRIGHT_GREEN.index);
                    style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
                    cell.setCellStyle(style);
                }

来自他们的文档:

/**
 * @deprecated use {@link HSSFColorPredefined} instead
 */
@Deprecated
@Removal(version="3.18")
public static class BRIGHT_GREEN extends HSSFColorRef {
    private static final HSSFColorPredefined ref = HSSFColorPredefined.BRIGHT_GREEN;
    public static final short index = ref.getIndex();
    public static final int index2 = ref.getIndex2();
    public static final short[] triplet = ref.getTriplet();
    public static final String hexString = ref.getHexString();
    public BRIGHT_GREEN() { super(ref); }
}

所以在你的情况下:HSSFColor.HSSFColorPredefined.BRIGHT_GREEN

为了你的setFillPattern

    style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

您的新代码应如下所示

    style = workbook.createCellStyle();
    style.setFillForegroundColor(HSSFColor.HSSFColorPredefined.BRIGHT_GREEN.getIndex())
    style.setFillPattern(FillPatternType.SOLID_FOREGROUND);