Java 使用 POI 导出Excel,设置同一个单元格的内容显示不同的文字颜色

发布时间 2023-03-22 21:15:37作者: 大瘦猴

要在 Java 中导出 Excel 并设置同一单元格的内容显示不同的文字颜色,可以使用 Apache POI 库来实现。下面是一个示例代码,演示如何在单元格中设置不同颜色的文本:

 1 // 创建工作簿和工作表
 2 Workbook workbook = new XSSFWorkbook();
 3 Sheet sheet = workbook.createSheet("Sheet1");
 4 
 5 // 创建一个样式,设置文本颜色为红色
 6 CellStyle redStyle = workbook.createCellStyle();
 7 Font redFont = workbook.createFont();
 8 redFont.setColor(IndexedColors.RED.getIndex());
 9 redStyle.setFont(redFont);
10 
11 // 创建一个样式,设置文本颜色为绿色
12 CellStyle greenStyle = workbook.createCellStyle();
13 Font greenFont = workbook.createFont();
14 greenFont.setColor(IndexedColors.GREEN.getIndex());
15 greenStyle.setFont(greenFont);
16 
17 // 创建一个单元格,并在其中设置两段文本,分别使用不同的样式
18 Row row = sheet.createRow(0);
19 Cell cell = row.createCell(0);
20 cell.setCellValue("Hello ");
21 cell.getRichStringCellValue().applyFont(0, 6, redFont); // 将前 6 个字符设置为红色
22 cell.setCellValue(cell.getStringCellValue() + "world!");
23 cell.getRichStringCellValue().applyFont(6, 12, greenFont); // 将后 6 个字符设置为绿色
24 
25 // 将工作簿保存到文件中
26 FileOutputStream outputStream = new FileOutputStream("output.xlsx");
27 workbook.write(outputStream);
28 outputStream.close();

在上面的示例代码中,我们首先创建了两个样式,分别用于设置红色和绿色的文本颜色。然后我们创建了一个单元格,并在其中设置了两段文本,分别使用不同的样式。最后,我们将工作簿保存到文件中。

注意,在这个示例中,我们使用了 `getRichStringCellValue()` 方法来获取单元格中的文本,并使用 `applyFont()` 方法来设置不同部分的字体样式。

效果样例: