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

在Java中使用POI获取Excel单元格背景颜色不匹配

沃念
2023-03-14

我正在将Excel表格转换为HTML。我使用Java中的POI获取xls工作簿中单元格的颜色。问题是颜色不匹配:在Excel中,我有242、220和219的RGB值,但当我使用POI获得它们时,我得到RGB(255153204)。

  HSSFCellStyle cs = (HSSFCellStyle) style;
    out.format("  /* fill pattern = %d */%n", cs.getFillPattern());
    styleColorback(out, "background-color", cs.getFillForegroundColorColor())

 private void styleColorback(Formatter out, String attr, HSSFColor color) {
   short[] rgb = color.getTriplet();
   out.format("  %s: #%02x%02x%02x; ", attr, rgb[0], rgb[1], rgb[2]);
 }

共有1个答案

祁和通
2023-03-14

我认为不可能获得单元格的确切颜色,因为Excel 2003调色板仅包含56种颜色。我发现获得准确颜色的唯一方法是,当您在Excel的选项中将Excel格式保存为.xls,然后在保存菜单中,我们可以更改调色板的颜色以获得所需的颜色。

 类似资料:
  • 我正在尝试将一行中的单元格复制到下一行。复制注释和单元格值也可以。现在,如果我在Excel中设置了背景色,并想将其复制到新的单元格中,它不起作用。要么复制后没有颜色,要么背景是黑色的。我试过了: 几个小时后没有任何进展,我查看了要复制的单元格的前景和背景色。在那里,我发现了RGB值。现在我想用这些值制作一个新的Cell样式,但这不起作用。首先,我尝试这个: 但有一条错误消息: 那有什么问题? 谢谢

  • 我正在使用Apache POI 4.1.2运行以下代码: 输出文档包含两个具有红色背景的单元格:似乎在第二个单元格上设置红色背景具有覆盖第一个单元格背景颜色的效果。 如果仅在第一个单元格上设置背景,则背景颜色将正确设置为绿色。 我如何解决这个问题?

  • 我必须打开现有的Excel并设置一些值或更改该单元格的背景/前景色。 这个excel是关于一家公司的工作日,所以我已经设计了一个Excel。我必须改变一些单元格的前景,因为,正如你可以想象的那样,在某些日子里,我们不起作用。 因此,对于每一天(对应于一个单元格),如果它没有被“启用”,它必须变成黄色。 我的代码是: 我想采用单元格的实际CellStyle,只更改前景色。这段代码部分有效,因为在其他

  • 我正在尝试为excel文件中的标题设置背景颜色,但得到的是黑色,单元格上没有可见的内容。我使用的是apache poi 4.1.0和poi-ooxml 4.1.0。 多谢了。

  • 背景:我正在尝试将Excel文件读入Java程序。我的Excel文件的意思是表示一个网格或栅格地图,所以我使每个单元格的高度和宽度为一英寸。我的想法是,我可以“绘制”一个地图或图像,通过阴影在每个单元格与一个颜色。然后,我可以将Excel文件读到一个我自己用“Pixel”对象创建的Java程序,并创建一个更文字化的图像。我是计算机科学的本科生,到目前为止我只上过四节计算机科学课。我懂OOP,能用J

  • 嘿,我下面的代码将单元格的背景更改为红色或绿色。似乎当我注释掉绿色的其他代码时,我的excel表对第1行中的每个单元格框都显示为红色。同样,如果我做相反的事情并注释掉RED并取消注释GREEN,那么第1行中的所有单元格都是绿色的。 我不明白下面的代码中是什么让所有的细胞颜色相同,即使前两个细胞应该是红色的,而所有其他细胞应该是绿色的。我已经检查了我的逻辑,它去了第一个IF 2次,然后剩下的去了el