例子:
代码:
StorageService localStorageService = storageFactory.getLocalStorageService();
String path = "";
// 文件信息
String dateTime = DateUtils.formatTimestampToString(new Date());
String title = "xxx统计";
String fileName = StringUtils.dbc2sbcCase(title) + "_" + dateTime + EXCEL_SUFFIX;
File file = null;
ExcelWriter excelWriter = null;
WriteSheet writeSheet = null;
int num = 0;
try {
file = localStorageService.newTempFile(fileName);
excelWriter = EasyExcel.write(file.getPath()).build();
writeSheet = EasyExcel.writerSheet(title).sheetNo(0).registerWriteHandler(new CustomizeColumnWidth()).build();
// 写入数据
List<List<String>> headList = new ArrayList<>();
headList.add(Lists.newArrayList(title,"数据1"));
headList.add(Lists.newArrayList(title,"数据2"));
headList.add(Lists.newArrayList(title,"数据3"));
//数据
List<List<String>> objects = new ArrayList<>();
objects.add(Lists.newArrayList("123","321","222"));
WriteTable writeTable = EasyExcel.writerTable(num)
.head(headList)
.registerWriteHandler(ExcelUtils.getStyleStrategy()).build();
excelWriter.write(Lists.newArrayList(objects), writeSheet, writeTable);
num++;
} catch (Exception e) {
e.printStackTrace();
}
if (excelWriter != null) {
// 写入数据
List<List<String>> headList = new ArrayList<>();
String tableTitle = "第二个表题";
headList.add(Lists.newArrayList(tableTitle,"姓名"));
headList.add(Lists.newArrayList(tableTitle,"年龄"));
headList.add(Lists.newArrayList(tableTitle,"性别"));
//数据
List<List<String>> objects = new ArrayList<>();
objects.add(Lists.newArrayList("admin","18","男"));
objects.add(Lists.newArrayList("admin2","19","男"));
WriteTable writeTable = EasyExcel.writerTable(num)
.head(headList)
.registerWriteHandler(ExcelUtils.getStyleStrategy()).build();
excelWriter.write(Lists.newArrayList(objects), writeSheet, writeTable);
num++;
try {
excelWriter.finish();
path = FileUtils.uploadFile(file, fileName, orgId, userId);
} catch (IOException e) {
e.printStackTrace();
}
}
// 生成的文件的路径
return path;
重点:
需要合并列的字段重复设到表头中
List<List<String>> headList = new ArrayList<>();
headList.add(Lists.newArrayList(title,"数据1"));
headList.add(Lists.newArrayList(title,"数据2"));
headList.add(Lists.newArrayList(title,"数据3"));