ExcelStyleUtil.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.kcim.common.util.excel;
  2. import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl;
  3. import org.apache.poi.ss.usermodel.*;
  4. /**
  5. * @program: performace
  6. * @description: excel 自定义样式
  7. * @author: Wang.YS
  8. * @create: 2023-02-16 11:37
  9. **/
  10. public class ExcelStyleUtil extends ExcelExportStylerDefaultImpl {
  11. public ExcelStyleUtil(Workbook workbook) {
  12. super(workbook);
  13. }
  14. /**
  15. * 标题样式
  16. */
  17. @Override
  18. public CellStyle getTitleStyle(short color) {
  19. CellStyle cellStyle = super.getTitleStyle(color);
  20. cellStyle.setFont(getFont(workbook, 11, true));
  21. cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
  22. cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
  23. cellStyle.setBorderBottom(BorderStyle.THIN);
  24. cellStyle.setBorderLeft(BorderStyle.THIN);
  25. cellStyle.setBorderRight(BorderStyle.THIN);
  26. cellStyle.setBorderTop(BorderStyle.THIN);
  27. return cellStyle;
  28. }
  29. /**
  30. * 单元格的样式
  31. */
  32. @Override
  33. public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) {
  34. CellStyle cellStyle = super.stringSeptailStyle(workbook, isWarp);
  35. cellStyle.setFont(getFont(workbook, 10, false));
  36. cellStyle.setBorderBottom(BorderStyle.THIN);
  37. cellStyle.setBorderLeft(BorderStyle.THIN);
  38. cellStyle.setBorderRight(BorderStyle.THIN);
  39. cellStyle.setBorderTop(BorderStyle.THIN);
  40. return cellStyle;
  41. }
  42. /**
  43. * 列表头样式
  44. */
  45. @Override
  46. public CellStyle getHeaderStyle(short color) {
  47. CellStyle cellStyle = super.getHeaderStyle(color);
  48. cellStyle.setFont(getFont(workbook, 9, false));
  49. cellStyle.setAlignment(HorizontalAlignment.LEFT);
  50. cellStyle.setWrapText(true);
  51. cellStyle.setBorderBottom(BorderStyle.THIN);
  52. cellStyle.setBorderLeft(BorderStyle.THIN);
  53. cellStyle.setBorderRight(BorderStyle.THIN);
  54. cellStyle.setBorderTop(BorderStyle.THIN);
  55. return cellStyle;
  56. }
  57. /**
  58. * 单元格的样式
  59. */
  60. @Override
  61. public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) {
  62. CellStyle cellStyle = super.stringNoneStyle(workbook, isWarp);
  63. cellStyle.setFont(getFont(workbook, 10, false));
  64. cellStyle.setBorderBottom(BorderStyle.THIN);
  65. cellStyle.setBorderLeft(BorderStyle.THIN);
  66. cellStyle.setBorderRight(BorderStyle.THIN);
  67. cellStyle.setBorderTop(BorderStyle.THIN);
  68. return cellStyle;
  69. }
  70. /**
  71. * 字体样式
  72. *
  73. * @param size 字体大小
  74. * @param isBold 是否加粗
  75. * @return
  76. */
  77. private Font getFont(Workbook workbook, int size, boolean isBold) {
  78. Font font = workbook.createFont();
  79. //字体样式
  80. font.setFontName("宋体");
  81. //是否加粗
  82. font.setBold(isBold);
  83. //字体大小
  84. font.setFontHeightInPoints((short) size);
  85. return font;
  86. }
  87. }