项目中有一些工程表格需要导出,设计到行列合并,定制样式,原有工具类冗余,内聚性强。所以想写一个可以随意定制excel的工具类,工具类满足需求:
嗯,时间有限,没有优化代码,小伙伴们有好的想法可以留言。
代码见博客: https://blog.csdn.net/sanhewuyang/article/details/113191009?spm=1001.2014.3001.5501
public static void main(String[] args) { // 使用方法 new WorkbookUtil() // 文件名称 .setFileName(null) // TODO 初始化一个excel .initWorkbook() // TODO 初始化一个sheet页,可自定义逻辑,(HSSFWorkbook,String) ->{ HSSFSheet} .initSheet(null,null) // TODO 初始化sheet页表头 ,可自定义逻辑,(HSSFSheet,HeadDetails) ->{ HSSFSheet} 下同 .initSheetHead(null,null,null,null) // 填充sheet页数据 .setSheetData(null,null,null) // sheet页数据指定列合并行 .setDataRowMerged(null,null,null) // sheet页数据指定相邻列合并,可以传入多值,(单行合并,值相同情况) .setDataCellMerged(null,null,null) // 当前sheet当前行插入数据 data :Map<Integer, String> (列索引,数据) .setSheetRow(null,null) // 当前sheet当前行强制合并 (firstCol,lastCol) 合并索引[必填] .setRowMerged(null,null) // 当前sheet指定行强制合并 .setCellRangeAddress(null,null) // 初始化表尾 .initSheetFoot(null,null) // TODO 第二个sheet页.. .initSheet(null,null) .initSheetHead(null,null,null,null) .setSheetData(null,null,null) .initSheetFoot(null,null) .setDataRowAndCellMerged(null,null,null) //.... // .builderByte() 输出字节数组 // 直接写入报文 .builderResponseEntity(); }
基本的表格
简单的行列合并:
稍微复杂的行列合并:
原文:https://www.cnblogs.com/liruilong/p/14336923.html