【Java】POI的HSSFRichTextString介绍

在使用Apache的POI库生成EXCEL文件时,经常会遇到这样的情况:使用不同的格式格式化一个单元格中的内容,比如说:一个单元格的内容是“first, second”,现在要分别使用红色带删除线格式化"first", 使用蓝色格式化“second",在这种情况下可以使用HSSFRichText来实现这一目的,下面的代码简单的示例了上述需求的实现:

 //创建工作簿  
        HSSFWorkbook wb = new HSSFWorkbook();  
        //创建工作表  
        HSSFSheet sheet = wb.createSheet();  
        //为工作表添加行  
        HSSFRow row = sheet.createRow(0);  
        //添加单元格  
        HSSFCell cell = row.createCell(0);  
        //创建字体  
        HSSFFont ftRed = wb.createFont();  
        ftRed.setStrikeout(true);  
        ftRed.setColor(HSSFColor.RED.index);  
          
        HSSFFont ftBlue = wb.createFont();  
        ftBlue.setColor(HSSFColor.BLUE.index);  
        //往单元格中写入的内容,并使用ft格式化"second"单词  
        String[] subStr = {  
                "first", "second"  
        };  
        String sText = subStr[0] + "," + subStr[1];  
        HSSFRichTextString textString = new HSSFRichTextString(sText);  
        textString.applyFont(  
                sText.indexOf(subStr[0]),  
                sText.indexOf(subStr[0]) + subStr[0].length(),  
                ftRed  
                );  
        textString.applyFont(  
                sText.indexOf(subStr[1]),  
                sText.indexOf(subStr[1]) + subStr[1].length(),  
                ftBlue  
                );  
        cell.setCellValue(textString); 

上述代码片段的生成效果为:

Apache文档对HSSFRichTextString的说明文档:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFRichTextString.html

原文地址:https://www.cnblogs.com/dflmg/p/5969390.html