赞
踩
本文是解决空白表格设置格式为文本并不需要表格中有内容,适合导出编写模版的需求。我在网上找了一圈也没具体的解决方案,有很多只能修改有文本数据的文章而且大多数都是复制粘贴的,并不能解决空白表格格式修改的问题。在这分享一下我的解决方案希望可以帮到大家!
在SheetWriteHandler的实现方法中,在afterSheetCreate方法中创建表格之前加入表格的格式,即可实现具体代码如下:
public class CustomSheetWriteHandler implements SheetWriteHandler { @Override public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {} @Override public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { for (int i = 0; i < 100; i++) { // 设置为文本格式 SXSSFSheet sxssfSheet = (SXSSFSheet) writeSheetHolder.getSheet(); CellStyle cellStyle = writeWorkbookHolder.getCachedWorkbook().createCellStyle(); // 49为文本格式 cellStyle.setDataFormat((short) 49); // i为列,一整列设置为文本格式 sxssfSheet.setDefaultColumnStyle(i, cellStyle); } } }
最后在使用的时候不要忘了注册改样式,可参考以下代码注册
EasyExcel.write(filePath).head(head(list)).sheet("模板")
.registerWriteHandler(new CustomSheetWriteHandler())
.registerWriteHandler(new CustomCellWriteHandler()).doWrite(new ArrayList<>(0));
可以看到一整列都修改为了文本格式,具体如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。