ExcelHelper.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package cn.com.qmth.examcloud.tool.utils;
  2. import com.alibaba.excel.write.handler.SheetWriteHandler;
  3. import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
  4. import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
  5. import com.alibaba.excel.write.metadata.style.WriteCellStyle;
  6. import com.alibaba.excel.write.metadata.style.WriteFont;
  7. import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
  8. import org.apache.commons.lang3.StringUtils;
  9. import org.apache.poi.ss.usermodel.*;
  10. import java.util.ArrayList;
  11. import java.util.Arrays;
  12. import java.util.List;
  13. public class ExcelHelper {
  14. public static List<List<String>> buildHeaders(List<String> headers) {
  15. return buildHeaders(null, headers);
  16. }
  17. public static List<List<String>> buildHeaders(String title, List<String> headers) {
  18. List<List<String>> fullHeaders = new ArrayList<>();
  19. for (String header : headers) {
  20. if (StringUtils.isNotEmpty(title)) {
  21. // 主标题
  22. fullHeaders.add(Arrays.asList(title, header));
  23. continue;
  24. }
  25. fullHeaders.add(Arrays.asList(header));
  26. }
  27. return fullHeaders;
  28. }
  29. public static SheetWriteHandler sheetStrategy() {
  30. return new SheetWriteHandler() {
  31. @Override
  32. public void afterSheetCreate(WriteWorkbookHolder workbookHolder, WriteSheetHolder sheetHolder) {
  33. Sheet sheet = sheetHolder.getSheet();
  34. sheet.createFreezePane(0, 1);// 固定首行
  35. sheet.setDefaultColumnWidth(20);
  36. }
  37. };
  38. }
  39. public static HorizontalCellStyleStrategy styleStrategy() {
  40. WriteCellStyle headStyle = new WriteCellStyle();
  41. headStyle.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex());
  42. headStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
  43. headStyle.setVerticalAlignment(VerticalAlignment.CENTER);
  44. headStyle.setBorderLeft(BorderStyle.THIN);
  45. headStyle.setBorderRight(BorderStyle.THIN);
  46. headStyle.setBorderBottom(BorderStyle.THIN);
  47. headStyle.setBorderTop(BorderStyle.THIN);
  48. headStyle.setWrapped(false);// 是否换行
  49. WriteFont headFont = new WriteFont();
  50. headFont.setFontHeightInPoints((short) 9);
  51. headFont.setFontName("宋体");
  52. headStyle.setWriteFont(headFont);
  53. WriteCellStyle contentStyle = new WriteCellStyle();
  54. WriteFont contentFont = new WriteFont();
  55. contentFont.setFontHeightInPoints((short) 9);
  56. contentFont.setFontName("宋体");
  57. contentStyle.setWriteFont(contentFont);
  58. return new HorizontalCellStyleStrategy(headStyle, contentStyle);
  59. }
  60. }