我正在使用 JExcelApi 生成 XLS 文件。从jxl.format.Colour,我看到了如何获得“标准 Excel 调色板”中的任何颜色,但没有看到如何创建新颜色(例如,给定它的 RGB)。
但在 Excel 本身中,我可以选择任何颜色。
我只是想念它吗?JExcelApi 中有没有办法选择任意颜色?我现在正在使用一个简单的 find-the-closest-standard-color 方法,这还可以,但不是很好。
我正在使用 JExcelApi 生成 XLS 文件。从jxl.format.Colour,我看到了如何获得“标准 Excel 调色板”中的任何颜色,但没有看到如何创建新颜色(例如,给定它的 RGB)。
但在 Excel 本身中,我可以选择任何颜色。
我只是想念它吗?JExcelApi 中有没有办法选择任意颜色?我现在正在使用一个简单的 find-the-closest-standard-color 方法,这还可以,但不是很好。
在 JExcel API 中覆盖调色板索引的方法是在可写工作簿上使用方法 [setColourRGB][1]。例如:
myWorkbook.setColourRGB(Colour.LIGHT_TURQUOISE2, 14, 67, 89);
如果要更改默认情况下第二个浅绿松石色的调色板条目中的颜色值。或者,在某些情况下更容易直接使用调色板索引:
myWorkbook.setColourRGB(Colour.getInternalColour(myPaletteIdx), 14, 67, 89);
一个小更新:根据 jxl.biff.PaletteRecord 源代码中的注释,只能自定义从 8 到 64 的索引。
[1]: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/write/WritableWorkbook.html#setColourRGB( jxl.format.Colour , int, int, int)
2007 年之前的 Excel 版本有一个标准调色板,并且鉴于您使用的 API 不支持 2007 格式,您可能会遇到这种情况。您可以选择任何您想要的颜色的原因可能是因为您使用的是新版本的 Excel。
我看不出如何覆盖您正在使用的 API 中的标准调色板,但在 Apache POI(也允许您编写 Excel 文件)中,您可以:查看此链接。基本上,您需要做的是:为您的单元格分配某些标准颜色(绿色等);然后用您需要的任何自定义颜色覆盖这些颜色。
WritableCellFormat cellFormat = new WritableCellFormat();
Colour customColor = new Colour(10000, "1", 255, 0, 0){
};
cellFormat.setBackground(customColor);
writableCell.setCellFormat(cellFormat);