一、添加pom依赖

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version>
</dependency>

二、Excel文档的自动列宽设置

package com.test.demo.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.test.demo.entity.User;
import lombok.Getter;import java.util.ArrayList;
import java.util.List;/*** @ClassName UserListener* @Description* @Author WangJing* @Date 2021/7/20 3:20 下午* @Version V1.1.0*/
public class UserListener extends AnalysisEventListener<User> {@Getterprivate List<User> userList = new ArrayList<User>();public UserListener() {super();userList.clear();}/*** 每一条数据解析都会调用*/@Overridepublic void invoke(User user, AnalysisContext context) {userList.add(user);}/*** 所有数据解析完成都会调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {userList.forEach(System.out::println);}
}

三、编写controller

package com.test.demo.controller;import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.test.demo.entity.User;
import com.test.demo.excel.Custemhandler;
import com.test.demo.excel.EasyExcelUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;/*** @ClassName ExcelController* @Description* @Author WangJing* @Date 2021/7/20 1:58 下午* @Version V1.1.0*/
@Slf4j
@Controller
public class ExcelController {@RequestMapping(value = "/exportExcel", method = RequestMethod.GET)public void download(HttpServletResponse response) throws IOException {response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("测试", "UTF-8");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");List<User> list = new ArrayList<>();for (int i = 0; i < 100; i++) {User user = new User();user.setAge(i + 10);user.setName("WangJing" + i);user.setPhone("1888888" + i);list.add(user);}EasyExcel.write(response.getOutputStream()).needHead(true).head(User.class).excelType(ExcelTypeEnum.XLSX).registerWriteHandler(new Custemhandler()).registerWriteHandler(EasyExcelUtil.getStyleStrategy()).sheet(0, "sheet").doWrite(list);}}

四、Excel的字体,样式,背景色的设置

package com.test.demo.excel;import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;/*** @ClassName EasyExcelUtil* @Description* @Author WangJing* @Date 2021/7/28 3:24 下午* @Version V1.1.0*/
public class EasyExcelUtil {/*** Excel的字体,样式,背景色的设置* @return*/public static HorizontalCellStyleStrategy getStyleStrategy(){// 头的策略WriteCellStyle headWriteCellStyle = new WriteCellStyle();// 背景设置为灰色headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());WriteFont headWriteFont = new WriteFont();headWriteFont.setFontHeightInPoints((short)12);// 字体样式headWriteFont.setFontName("Frozen");headWriteCellStyle.setWriteFont(headWriteFont);//自动换行headWriteCellStyle.setWrapped(false);// 水平对齐方式headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);// 垂直对齐方式headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 内容的策略WriteCellStyle contentWriteCellStyle = new WriteCellStyle();// 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定
//        contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);// 背景白色contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());WriteFont contentWriteFont = new WriteFont();// 字体大小contentWriteFont.setFontHeightInPoints((short)12);// 字体样式contentWriteFont.setFontName("Calibri");contentWriteCellStyle.setWriteFont(contentWriteFont);// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);}
}

五、User实体类

package com.test.demo.entity;import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;/*** @ClassName User* @Description* @Author WangJing* @Date 2021/7/20 2:17 下午* @Version V1.1.0*/
@Data
public class User {@ExcelProperty(value = "姓名", index = 0)private String name;@ExcelProperty(value = "手机号", index = 1)private String phone;@ExcelProperty(value = "年龄", index = 2)private Integer age;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", phone='" + phone + '\'' +", age=" + age +'}';}
}

六、浏览器访问下载:http://localhost:8080/exportExcel

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!

SpringBoot实现Excel导出并设置表格属性(easyExcel)相关推荐

  1. Springboot+poi+实现导出导入Excle表格+Vue引入echarts数据展示

    需求: 一. 数据库数据表导出Excle表格 二. Excle数据导入数据库 三. Vue引入Echarts数据展示 工具: idea 数据库: mysql 框架:Springboot 准备工作: 1 ...

  2. SpringBoot Application.yml 中可设置的属性导航

    原文链接:SpringBoot 可设置的属性 # ---------------------------------------- #核心特性 # -------------------------- ...

  3. easypoi导出excel不设置样式_POI Excel导出样式设置

    HSSFSheet sheet = workbook.createSheet("sheetName"); //创建sheet sheet.setVerticallyCenter(t ...

  4. java表格怎样设置内间距_如何设置表格的间距和背景等属性

    步骤一:在打开的网页文档中选择表格后,在"属性"面板中即可对表格的属性进行设置.首先设置表格的id和行列值. 步骤二:接下来设置表格的宽度和高度."宽"和&qu ...

  5. java导出excel设置边框_Excel如何设置表格边框样式,记住这几个关键属性就懂了

    Excel表格边框的设置,对于制作一个漂亮的工作表,十分有用. 由于审美的差异,我们通常做的表格都是以黑色边框白底为主,或者说,有些人根本不知道除了黑白表格还有带颜色的. 如何设置表格边框属性呢,下面 ...

  6. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  7. Springboot之Excel表格导出

    Springboot之Excel表格导出 表格导出使用的还是POI,POI的介绍请查看 https://blog.csdn.net/qq_36654629/article/details/901729 ...

  8. SpringBoot如何实现导出Excel表格

    我们查到的数据是list,如何将这些数据导出到Excel表格中呢 我这里查到的list数据是 List monthReportModels 一.导入依赖 <dependency><g ...

  9. springboot使用jxls导出excel___(万能通用模板)--- SpringBoot导入、导出Excel文件___SpringBoot整合EasyExcel模板导出Excel

    springboot使用jxls导出excel 实现思路: 首先在springBoot(或者SpringCloud)项目的默认templates目录放入提前定义好的Excel模板,然后在具体的导出接口 ...

  10. Springboot整合Poi导出excel(简单版)

    一. 问题引入 博客专栏: Springboot整合Poi导出excel(简单版) Springboot整合Poi导出excel(注解版) 总所周知Springboot是一个功能强大的微服务框架,集成 ...

最新文章

  1. windows下tomcat自动定时重启方法
  2. Idea实体类上加@Data注解但get/set方法不生效
  3. ngTemplateOutlet递归的问题
  4. C++ 系列:extern
  5. java jpa 注解_Java : JPA相关以及常用注解
  6. FullCalendar 六:FullCalendar应用——拖动与实时保存
  7. Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
  8. hibernate中cascade和inverse中的设置问题
  9. ASP.NET MVC 5高级编程 (pdf书)
  10. 线性分类器和非线性分类器总结
  11. 牛客网项目——项目开发(三):开发登录模块
  12. 大数据平台以及一些核心组件介绍
  13. 教你怎么用手机进入路由器管理界面
  14. “《三国演义》人物出场统计“实例讲解
  15. 国内和国际反垃圾邮件组织
  16. APP Store下载一直等待中解决办法
  17. 物联网为什么需要5G?
  18. ORACLE 年龄计算到月份
  19. Python - 经典程序示例
  20. 一文读懂链上身份(DID):赛道及项目一览

热门文章

  1. Linux/ubuntu AWK / BEGIN / END的用法
  2. uniapp 自定义模板
  3. 怎样发表期刊才能快速通过
  4. 入门级Pytorch+MINIST数据集实现手写数字识别
  5. Butterworth数字滤波器设计
  6. node打印彩色文字
  7. SysRec2016 | Deep Neural Networks for YouTube Recommendations
  8. 几何向量:空间三角形内心
  9. Windows照片查看器无法打开此图片怎么办
  10. 微信公众号迁移流程 《openid转换》