例子:
代码:
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"));