EasyExcelUtil.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.railway.common.utils.poi;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.alibaba.excel.ExcelWriter;
  4. import com.alibaba.excel.support.ExcelTypeEnum;
  5. import com.alibaba.excel.write.metadata.WriteSheet;
  6. import com.alibaba.excel.write.metadata.fill.FillConfig;
  7. import com.railway.common.utils.file.FileUploadUtils;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.OutputStream;
  11. import java.nio.file.Files;
  12. import java.nio.file.Paths;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * @author Eric
  17. */
  18. public class EasyExcelUtil {
  19. public String getExcel(Map<String, Object> params, List<?> list, String template,
  20. String excelName) {
  21. String filePath = FileUploadUtils.getAbsoluteFileEncoding(excelName);
  22. try (InputStream is = Files.newInputStream(Paths.get(template));
  23. OutputStream os = Files.newOutputStream(Paths.get(filePath))) {
  24. WriteSheet writeSheet = EasyExcel.writerSheet().build();
  25. ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(is)
  26. .excelType(ExcelTypeEnum.XLS)
  27. .registerConverter(new LocalDateConverter())
  28. .build();
  29. //列表自动添加行
  30. FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
  31. excelWriter.fill(list, fillConfig, writeSheet);
  32. fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
  33. excelWriter.fill(params, fillConfig, writeSheet);
  34. excelWriter.finish();
  35. } catch (IOException e) {
  36. return null;
  37. }
  38. return filePath;
  39. }
  40. public <T> String writeExcel(List<T> list, String templateFileName, String fileName) {
  41. String filePath = FileUploadUtils.getAbsoluteFileEncoding(fileName);
  42. try (InputStream is = Files.newInputStream(Paths.get(templateFileName))) {
  43. EasyExcel.write(filePath).withTemplate(is)
  44. .registerConverter(new LocalDateConverter())
  45. .sheet()
  46. .doFill(list);
  47. } catch (IOException e) {
  48. return null;
  49. }
  50. return filePath;
  51. }
  52. }