栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

excel-xssfx文件下载导出上下标代码

excel-xssfx文件下载导出上下标代码

excel列头样例: "test1" , "test2",

//详细代码
private static final Pattern scriptPattern = Pattern.compile("<(su[b|p])>([^<>]+)");

public RichTextString getRichTextHeader(String value){
		Matcher scriptMatcher = scriptPattern.matcher(value);
		String label,labelContent, labelName, temp = value;
		int start,end;
		List list = new ArrayList<>();
		Workbook workbook = new SXSSFWorkbook();
		while(scriptMatcher.find()){
			Font ft = workbook.createFont();
			label = scriptMatcher.group(0); //一组标签,如:a
			labelName = scriptMatcher.group(1); // 标签名字,如:sub/sup
			labelContent = scriptMatcher.group(2); // 标签之间的内容,如:a
			start = 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("test1"));


//scriptFont类如下:
@Data
@AllArgsConstructor
public class scriptFont{
	public int start;
	public int end;
	public Font ft;
}

以上代码支持XSSFWorkbook, 而SXSSFWorkbook大数据量下载的不支持,因为流格式数据不是放在共享内存里面的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号