【发布时间】:2019-11-22 21:57:06
【问题描述】:
我正在查看一个我想要复制的 Excel 表,我遇到的唯一问题是颜色。我要复制的颜色是来自Standard Colors 部分的Blue, Accent 5, Lighter 40% 和Light Green。我正在查看 docs 在 XSSF 工作簿中使用自定义颜色,它指出这样做的方法是这样的:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("custom XSSF colors");
XSSFCellStyle style1 = wb.createCellStyle();
style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128), new DefaultIndexedColorMap()));
style1.setFillPattern(FillPatternType.SOLID_FOREGROUND);
当我尝试使用style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128), new DefaultIndexedColorMap())); 时出现错误,因为.setFillForegroundColor() 的唯一参数只接受一个参数,即short 而不是XSSFColor。
有没有人遇到过这种情况?我一直在寻找几个小时,但找不到任何 8 岁以下或不起作用的东西。
【问题讨论】:
-
@VladBochenin 我没有,但看起来他正在将 Color 传递给 XSSFColor 构造函数,现在已弃用。不推荐使用的构造函数是 (IndexedColorMap), (Color, IndexedColorMap), (byte[], IndexedColorMap) 和 (IndexedColors, IndexedColorMap)
-
@ArvindKumarAvinash 这个答案建议使用 IndexedColors,我的问题是我正在寻找的颜色不在 IndexedColors 枚举中,所以我需要创建自己的自定义颜色。
-
使用
apache poi版本时会出现什么确切错误?使用当前的apache poi 4.1.1在XSSFCellStyle中有public void setFillForegroundColor(XSSFColor color)。
标签: java excel apache-poi