java POI excel 导出复合样式(一个单元格两个字体)
Posted 不忘初心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java POI excel 导出复合样式(一个单元格两个字体)相关的知识,希望对你有一定的参考价值。
前言:java poi 导出 excel 时,需要设置一个单元格有多个字体样式,有点类似于富文本。
想要达到的效果(一个单元格里):
我使用的 poi 版本是
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency>
具体实现:
工具类方法:
/** * 设置值和样式,富文本 复合样式(一个单元格多个字体) * @param cell 当前单元格 * @param wholeStr 整个字符串 * @param strArray 字符串分割的数组 * @param strFontList 字符串分割后一一对应的字体 */ public static void setRichTextCellValue(Cell cell, String wholeStr, String[] strArray, List<Font> strFontList){ HSSFRichTextString hssfRichTextString = new HSSFRichTextString(wholeStr); int strLength = 0; for(int i = 0; i < strArray.length; i++){ hssfRichTextString.applyFont(strLength, strLength + strArray[i].length(), strFontList.get(i)); strLength = strArray[i].length(); } cell.setCellValue(hssfRichTextString); }
设置第0行第0列的代码:
List<Font> strFontList = new ArrayList<>(); strFontList.add(GenerateFontUtil.getRedFont(workbook)); Font font = GenerateFontUtil.getCommonFont(workbook); font.setFontHeightInPoints((short) 14); strFontList.add(font); GenerateCellStyleUtil.setRichTextCellValue(sheet.getRow(0).getCell(0), "红色字体 黑色字体" , new String[]{"红色字体", " 黑色字体"}, strFontList);
以上是关于java POI excel 导出复合样式(一个单元格两个字体)的主要内容,如果未能解决你的问题,请参考以下文章
JAVA POI 导出 EXCEL模板 怎么设置单元格格式为 文字
java中使用poi导入导出excel文件_并自定义日期格式