当前位置: 首页 > 知识库问答 >
问题:

阿帕奇POI从爪哇的Excel中获取精确的字体颜色

昝欣可
2023-03-14

在excel表格中如何在java中使用Apache POI获取准确的字体颜色值?我试图通过使用

org . Apache . poi . ss . user model . font f = book . getfont at(style . getfont index());short clr idx = f . getcolor();

但它没有给出确切的颜色索引。获得此颜色值后,我必须在PDFtable中应用相同的颜色。在这里,我通过阅读每个excel单元格格式并在iText中使用pdf创建相同的格式来进行excel到pdf的转换。

请帮帮我!!

先谢谢你。

共有1个答案

齐鸿光
2023-03-14

您需要从 Excel 字体颜色中获取 RGB 值。您可以通过几个步骤获取这些值。

要获取适当的POI Color对象,您需要沿着HSSF或XSSF路径,提取适当的HSSFColor或XSSFColor,然后从颜色中获取RGB值。

int red = 0;
int green = 0;
int blue = 0;
if (font instanceof HSSFont)
{
   HSSFColor color = ((HSSFFont) font).getHSSFColor(hssfWorkbook);
   // 0: red, 1: green, 2: blue
   short[] rgb = color.getTriplet();
   red = rgb[0];
   green = rgb[1];
   blue = rgb[2];
}
else if (font instanceof XSSFFont)
{
   XSSFColor color = ((XSSFFont) font).getXSSFColor();
   byte[] rgb = color.getRgb();
   // Bytes are signed, so values of 128+ are negative!
   // 0: red, 1: green, 2: blue
   red = (rgb[0] < 0) ? (rgb[0] + 256) : rgb[0];
   green = (rgb[1] < 0) ? (rgb[1] + 256) : rgb[1];
   blue = (rgb[2] < 0) ? (rgb[2] + 256) : rgb[2];
}
// Use the rgb values here.

然后,您可以使用 rgb 值在 iText 中创建基本颜色对象。

更新:

有几个与在XSSF中提取颜色相关的Apache POI错误(对于. xlsx文件):

#51222

#51236

#52079

#53274

XSSF在处理主题颜色时会出现这些错误。

 类似资料:
  • 我创建了此代码以使用Apache POI读取excel文件的内容。我使用eclipse作为编辑器,但当我运行代码时,我的粗体行出现问题。有什么问题?excel的内容如下:

  • 我无法通过终端用Ant编译源代码,因为尽管我发出了“Ant resolve or Ant retrieve”,但依赖项似乎没有正确解析? 下面是我的build.xml和ivy.xml 编译文件 ivy.xml 当我运行“ant-compile”时,on-compiling ant抱怨它找不到作为tomcat一部分的“Servlet Context”。jar或“TObject”、“THashMap”

  • 如何使用标题读取Excel文件(xlsx)阿帕奇POI,Spring Boot!!!。我知道我们可以使用行迭代器和单元格迭代器来读取。我想用标题阅读。 这就是我使用行迭代器和单元格迭代器读取xlsx文件的方式 但是如何使用标题阅读? 法典: 参考 1 的图像: 参考图片2:

  • Microsoft Powerpoint有一个按部分拆分幻灯片的功能(逻辑分组)。提取部分名称的最佳方法是什么?技术堆栈- 阿帕奇 POI - v5.2.2 爪哇岛 我已经用VBA < code > section name = active presentation实现了同样的效果。section properties . Name(current slide . section index)

  • Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?

  • 我是apache kafka的新手。现在,有几天想和动物园管理员一起了解Kafka。我想获取与动物园管理员相关的主题。所以我尝试了以下几点 a:)首先我创建了一个动物园管理员客户端,如下所示: 但是使用Java代码执行时主题是空白集。我不明白这里有什么问题。我的动物园管理员道具如下:字符串zkConnect="127.0.0.1:2181";动物园管理员运行得非常好。 请帮助伙计们。