POI excel 一个单元格多种字体样式

您所在的位置:网站首页 同一列单元格宽度不同 POI excel 一个单元格多种字体样式

POI excel 一个单元格多种字体样式

2024-07-15 17:54| 来源: 网络整理| 查看: 265

需求: 现在项目中需要对标题的字体进行格式设置,()的字体进行缩小实际效果图:image.png

核心代码

//设置同一个单元格多个字体样式 HSSFRichTextString textString = new HSSFRichTextString(fileHead); textString.applyFont(0,fileHead.indexOf("("), font); textString.applyFont(fileHead.indexOf("("),fileHead.length(), font3); cell.setCellValue(textString);

利用applyFont可以分段对文字进行处理,applyFont(样式生效起始index,样式生效结束index, 字体样式),index是从0开始。最后一个参数也可以直接传递字体的大小,textString.applyFont(0,fileHead.indexOf("("), (short)15);注意样式不要重复设置,样式重复会报错。下面是完整代码

String fileHead="测试数据信息(2022-2-12至2022-03-14)"; String[] headStr = {"序号", "测试1", "测试2"}; Integer[] cellWidth = {1800, 4500, 5000}; String fileName = fileHead + ".xls"; Workbook wb = new HSSFWorkbook(); /**创建一个SHEET**/ Sheet sheet = wb.createSheet(fileHead); Row row = null; /**设置大标题**/ CellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //标题字体 Font font = wb.createFont(); font.setFontName("楷体"); font.setFontHeightInPoints((short) 20); font.setBold(true); // 日期的字体样式 Font font3 = wb.createFont(); font3.setFontName("楷体"); font3.setFontHeightInPoints((short) 15); //标题内容行 row = sheet.createRow(0); row.setHeight((short) 700); /**合并第一行的列**/ CellRangeAddress titleCRA = new CellRangeAddress(0, 0, 0, headStr.length - 1); sheet.addMergedRegion(titleCRA); Cell cell = row.createCell(0); //设置同一个单元格多个字体样式 HSSFRichTextString textString = new HSSFRichTextString(fileHead); textString.applyFont(0,fileHead.indexOf("("), font); textString.applyFont(fileHead.indexOf("("),fileHead.length(), font3); cell.setCellStyle(cellStyle); cell.setCellValue(textString); //... 省略后面的填充数据的过程


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3