excel-xssfx文件下载导出上下标代码
生活随笔
收集整理的這篇文章主要介紹了
excel-xssfx文件下载导出上下标代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
excel列頭樣例: "test<sub>1</sub>" , "test<sup>2</sup>",//詳細代碼
private static final Pattern scriptPattern = Pattern.compile("<(su[b|p])>([^<>]+)</\\1>");public RichTextString getRichTextHeader(String value){Matcher scriptMatcher = scriptPattern.matcher(value);String label,labelContent, labelName, temp = value;int start,end;List<SubSupFont> list = new ArrayList<>();Workbook workbook = new SXSSFWorkbook();while(scriptMatcher.find()){Font ft = workbook.createFont();label = scriptMatcher.group(0); //一組標簽,如:<sub>a</sub>labelName = scriptMatcher.group(1); // 標簽名字,如:sub/suplabelContent = scriptMatcher.group(2); // 標簽之間的內容,如:astart = temp.indexOf(label);//這個標簽的起始位置end = start + labelContent.length(); //這個標簽的內容長度temp = temp.replace(label, labelContent); // 替換一組標簽為標簽之間的內容if(StringUtils.isEmpty(temp)){continue;}if("sub".equalsIgnoreCase(labelName)){ft.setTypeOffset(HSSFFont.SS_SUB); //下標}else{ft.setTypeOffset(HSSFFont.SS_SUPER); //上標}list.add(new ScriptFont(start,end,ft));}RichTextString richTextString;if(list.size() > 0){richTextString = new XSSFRichTextString(temp);for(ScriptFont scriptFont: list){richTextString.applyFont(scriptFont.getStart(),scriptFont.getEnd(),scriptFont.getFt());}}else{richTextString = new XSSFRichTextString(value);}return richTextString;}//然后把上面的設置給cell的value,如下所示:
cell.setCellValue(getRichTextHeader("test<sub>1</sub>"));//ScriptFont類如下:
@Data
@AllArgsConstructor
public class ScriptFont{public int start;public int end;public Font ft;
}以上代碼支持XSSFWorkbook, 而SXSSFWorkbook大數據量下載的不支持,因為流格式數據不是放在共享內存里面的
總結
以上是生活随笔為你收集整理的excel-xssfx文件下载导出上下标代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Navisworks Manage 20
- 下一篇: hypermesh抽中面后的处理_总结|