springboot基本jar包不多说,加入Easy Excel的jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
上代码
public void loadDefineModel() {
String filePath = "C:\\Users\\DELL\\Desktop\\自定义模板.xlsx";
OutputStream outputStream = null;
ExcelWriter writer = null;
try {
Sheet sheet = new Sheet(1, 0);
sheet.setSheetName("sheet");
sheet.setAutoWidth(Boolean.TRUE);
// 创建第一个表格
Table table1 = new Table(1);
// 动态添加 表头 headList --> 所有表头行集合
List<List<String>> headList = new ArrayList<List<String>>();
// 第 n 行 的表头
List<String> headTitle0 = new ArrayList<String>();
List<String> headTitle1 = new ArrayList<String>();
List<String> headTitle2 = new ArrayList<String>();
List<String> headTitle3 = new ArrayList<String>();
List<String> headTitle4 = new ArrayList<String>();
headTitle0.add("单据编号");
headTitle0.add("单据编号");
headTitle1.add("数量");
headTitle1.add("数量");
headTitle2.add("提交人");
headTitle2.add("提交人");
headTitle3.add("处理结果");
headTitle3.add("未处理");
headTitle4.add("处理结果");
headTitle4.add("已处理");
//将头标题添加到第一个表格中
headList.add(headTitle0);
headList.add(headTitle1);
headList.add(headTitle2);
headList.add(headTitle3);
headList.add(headTitle4);
table1.setHead(headList);
// 第一个表格所有行的集合
List<List<Object>> list = new ArrayList<List<Object>>();
for (int i = 1; i <= 10; i++) {
// 第 n 行的数据
List<Object> row = new ArrayList<Object>();
row.add("DJ2019-" + i);
row.add(i+1);
row.add("超级管理员");
row.add(i);
row.add(i-(i-1));
list.add(row);
}
// 创建第二个表格
Table table2 = new Table(2);
// 动态添加 表头 headList1 --> 所有表头行集合
List<List<String>> headList1 = new ArrayList<List<String>>();
List<String> headTitle5 = new ArrayList<String>();
List<String> headTitle6 = new ArrayList<String>();
List<String> headTitle7 = new ArrayList<String>();
headTitle5.add("组合单据类型");
headTitle5.add("组合单据类型");
headTitle6.add("总占比");
headTitle6.add("未处理比例");
headTitle7.add("总占比");
headTitle7.add("已处理比例");
//将头标题添加到第二个表格中
headList1.add(headTitle5);
headList1.add(headTitle6);
headList1.add(headTitle7);
table2.setHead(headList1);
// 第二个表格所有行的集合
List<List<Object>> list1 = new ArrayList<List<Object>>();
List<Object> row = new ArrayList<Object>();
row.add("已完成 + 已审批");
row.add("40%");
row.add("60%");
list1.add(row);
outputStream = new FileOutputStream(filePath);
writer = EasyExcelFactory.getWriter(outputStream);
writer.write1(list,sheet,table1);
writer.write1(list1,sheet,table2);
} catch (FileNotFoundException e) {
}finally {
try {
if(writer != null){
writer.finish();
}
if(outputStream != null){
outputStream.close();
}
} catch (IOException e) {
}
}
}
可以自己去了解一下Easy Excel:https://alibaba-easyexcel.github.io/index.html
展示结果