在 JExcelApi 中制作新颜色

发布于 2024-08-13 05:13:11 字数 327 浏览 11 评论 0原文

我正在使用 JExcelApi 生成 XLS 文件。从jxl.format.Colour,我看到如何获取“标准 Excel 调色板”中的任何颜色,但不是如何创建新颜色(例如,给定其 RGB)。

但在 Excel 本身中,我可以选择任何颜色。

我只是想念它吗? JExcelApi 有没有办法选择任意颜色?我现在使用一个简单的查找最接近标准颜色的方法,这还可以,但不是很好。

I'm using JExcelApi for generating XLS files. From jxl.format.Colour, I see how to get any of the colors in the "standard Excel colour palette", but not how to create a new color (say, given its RGB).

But in Excel itself, I can pick any color at all.

Am I just missing it? Is there a way in JExcelApi to select an arbitrary color? I'm using a simple find-the-closest-standard-color method right now, which is OK but not great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

染柒℉ 2024-08-20 05:13:11

在 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)

The way to override a palette index in JExcel API is to use the method [setColourRGB][1] on the writable workbook. For instance:

myWorkbook.setColourRGB(Colour.LIGHT_TURQUOISE2, 14, 67, 89);

if you want to change the color value in the palette entry where there is by default the second light turquoise. Or, more easily in some cases, directly with the palette index:

myWorkbook.setColourRGB(Colour.getInternalColour(myPaletteIdx), 14, 67, 89);

A small update: only the indexes from 8 to 64 can be customized according to a comment inside the source code of jxl.biff.PaletteRecord.

[1]: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/write/WritableWorkbook.html#setColourRGB(jxl.format.Colour, int, int, int)

我们的影子 2024-08-20 05:13:11

2007 年之前的 Excel 版本具有标准调色板,并且考虑到您使用的 API 不支持 2007 格式,您可能会陷入困境。您可以选择任何所需颜色的原因可能是因为您使用的是新版本的 Excel。

请参阅Microsoft 网站上的此信息

我不知道如何覆盖您正在使用的 API 中的标准调色板,但在 Apache POI(也允许您编写 Excel 文件)中,您可以:参见 此链接。基本上,您需要做的是:为您的单元格分配某些标准颜色(绿色等);然后用您需要的任何自定义颜色覆盖这些颜色。

Excel versions before 2007 have a standard palette, and given that the API you are using does not support the 2007 format, you may be stuck with that. The reason you can choose any colour you want is probably because you are using a new version of Excel.

See this information on the Microsoft site.

I don't see how you could override the standard colour palette in the API you are using, but in Apache POI (which also lets you write Excel files) you can: see this link. Basically, what you need to do there is: assign certain standard colours (green, etc) to your cells; then override these colours with whatever custom colour you need.

清晨说晚安 2024-08-20 05:13:11
WritableCellFormat cellFormat = new WritableCellFormat();

Colour customColor = new Colour(10000, "1", 255, 0, 0){     
};

cellFormat.setBackground(customColor);  
writableCell.setCellFormat(cellFormat);
WritableCellFormat cellFormat = new WritableCellFormat();

Colour customColor = new Colour(10000, "1", 255, 0, 0){     
};

cellFormat.setBackground(customColor);  
writableCell.setCellFormat(cellFormat);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文