用Apache POI把文字信息输出到Excel的时候,遇到如图的情况。HTML中这些上标下标是用‘,’包起来的
那么要导出到excel,如何让excel里面也显示如图的样子,而不是直接显示那些标签呢?
sup
sub
话不多说,先导包:
org.apache.poi
poi-ooxml
3.16
核心的代码就是:
String content="aaa2ccc"
//生成workbook
HSSFWorkbook workbook = new HSSFWorkbook();
//生成sheet
HSSFSheet sheet = workbook.createSheet("sheet1");
//生成行row(第一行)
HSSFRow row = sheet.createRow(0);
//创建单元格(第一行第一格)
HSSFCell cell = row.createCell(0);
//生成富文本文字
HSSFRichTextString text = new HSSFRichTextString(content);
//生成字体
HSSFFont ft = workbook.createFont();
//设置下标字体,sup的话此处设置HSSFFont.SS_SUPER
ft.setTypeOffset(HSSFFont.SS_SUB);
//设置字体生效的位置区间,content字符串去掉sub标签之后,第四个字符需要处理成下标,所以参数是3,4
//如果是content="aaa23ccc",位置参数就是3,5,不同位置可多次调用applyFont方法
text.applyFont(3,4,ft);
cell.setCellValue(text);
//TODO 输出文件
......
了解核心代码之后,需要做的就是解析字符串中的标签,然后按照这个方