Java 如何使用ApachePOI更改excel工作表的同一单元格中的特定文本颜色?
有人知道如何在excel中更改单元格特定文本的颜色吗。 我正在使用ApachePOI,我可以发现如何更改整个单元格的文本颜色。但我只想要一个特定的文本 A1单元有Hello World 我希望“你好”是蓝色的,“世界”是绿色的。 如何执行此操作?关键是使用对象设置单元格的值。此对象有一个接受起始索引、结束索引和字体的方法。因此,您可以创建具有所需颜色的字体,然后使用applyFont()将其应用于单元格值的部分 下面是我拼凑的一些示例代码(完全未经测试):Java 如何使用ApachePOI更改excel工作表的同一单元格中的特定文本颜色?,java,excel,apache-poi,Java,Excel,Apache Poi,有人知道如何在excel中更改单元格特定文本的颜色吗。 我正在使用ApachePOI,我可以发现如何更改整个单元格的文本颜色。但我只想要一个特定的文本 A1单元有Hello World 我希望“你好”是蓝色的,“世界”是绿色的。 如何执行此操作?关键是使用对象设置单元格的值。此对象有一个接受起始索引、结束索引和字体的方法。因此,您可以创建具有所需颜色的字体,然后使用applyFont()将其应用于单元格值的部分 下面是我拼凑的一些示例代码(完全未经测试): 首先创建一个样式 //////////
首先创建一个样式
//////////////////////Excel Header Style/////////////////////////
HSSFCellStyle headerlabelcs = wb.createCellStyle();
headerlabelcs.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
headerlabelcs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
headerlabelcs.setBorderLeft((short)1);
headerlabelcs.setBorderRight((short)1);
HSSFFont headerlabelfont = wb.createFont();
headerlabelfont.setFontHeightInPoints((short)12);
headerlabelfont.setFontName("Calibri");
headerlabelfont.setColor(HSSFColor.BLACK.index);
headerlabelfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headerlabelcs.setFont(headerlabelfont);
//////////////////////Excel Header Style/////////////////////////
添加,则这一行将添加到您的代码中
sheet.getRow(rowIndex).getCell(0).setCellStyle(headerlabelcs);
@BrianRogers感谢您确认一个单元格可以有多种颜色。此解决方案不符合OP的要求。他想将单个单元格中的部分文本设置为两种不同的颜色,然后根据文本更改样式有趣的是,如果要覆盖Hello的颜色,这是行不通的。如果您修改World,则完全相同的代码段可以工作!Hello的颜色被alrite覆盖,但World失去了它的风格。如果显式地应用字体richString.applyFont(blueFont),它是固定的;applyFont(2,5,绿色字体);对于xlsx文件,有一种等效的方法也可以用同样的方法工作;applyFont(6,13,绿色字体);cell.setCellValue(richString);我也有同样的担忧。但到目前为止,我还无法接触到我的代码,但我很好奇能尽快测试它……希望这能奏效
sheet.getRow(rowIndex).getCell(0).setCellStyle(headerlabelcs);