如何使用ApachePOI更改excel工作表的同一单元格中的特定文本颜色?

有人知道如何在excel中更改单元格特定文本的颜色吗。
我正在使用ApachePOI,我可以发现如何更改整个单元格的文本颜色。但我只想要一个特定的文本

A1单元有Hello World
我希望“你好”是蓝色的,“世界”是绿色的。
我该怎么做

关键是使用HSSFRichTextString对象设置单元格的值。此对象有一个applyFont方法,该方法接受startingIndex、endingIndex和字体。因此,您可以创建具有所需颜色的字体,然后使用applyFont()将其应用于单元格值的部分

下面是我拼凑的一些示例代码(完全未经测试):

//设置包含单元格的基本工作表
HSSFWorkbook wb=新的HSSFWorkbook();
HSSFSheet sheet=wb.createSheet(“sheet1”);
HSSFRow行=sheet.createRow(0);
HSSFCell cell=row.createCell(0);
//设置字体
hssfont blueFont=工作簿.createFont();
blueFont.setColor(HSSFColor.BLUE.index);
hssfont greenFont=工作簿.createFont();
greenFont.setColor(HSSFColor.GREEN.index);
//创建单元格样式并为其指定第一种字体
HSSFCellStyle=workbook.createCellStyle();
style.setFont(蓝色字体);
//将样式指定给单元格
cell.setCellStyle(style);
//替代要删除的文本部分
//通过应用不同的字体来改变颜色。
HSSFRichTextString richString=新的HSSFRichTextString(“你好,世界!”);
applyFont(6,13,绿色字体);
cell.setCellValue(richString);

发表评论