上一篇文章演示了如何使用poi 4.1.2
设置单元格背景色,但4.1.2
版本只能使用预设的颜色枚举来设置颜色。如果想更加自由的设置任意颜色,则需要升级poi的版本到5.2.3
及以上版本。这篇文章将演示如何使用POI 5.2.3
的版本实现单元格自定义背景色功能。
版本
org.apache.poi版本:5.2.3
。
在5.2.3
可以通过以下两种方式来设置自定义颜色:
-
可以使用 XSSFColor 构造函数 来创建颜色,如下面的代码所示:
style.setFillForegroundColor(new XSSFColor(new byte[]{(byte) 255, (byte) 0, (byte) 255}, null));
这将使用RGB颜色值(255, 0, 255)来创建一个颜色对象,并将其设置为单元格的填充颜色。
-
使用 RGB颜色值 来设置颜色
style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255,0,255), new DefaultIndexedColorMap()));
版本引入
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
代码
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.