JAVA中Excel导出方式一:EasyPoi

JAVA中Excel导出方式一:EasyPoi

pom文件导入依赖

<dependency>
              <groupId>cn.afterturn</groupId>
              <artifactId>easypoi-spring-boot-starter</artifactId>
              <version>4.3.0</version>
         </dependency>
		 <dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-base</artifactId>
			<version>4.3.0</version>
		</dependency>
		<dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-web</artifactId>
			<version>4.3.0</version>
		</dependency>
		<dependency>
			<groupId>cn.afterturn</groupId>
			<artifactId>easypoi-annotation</artifactId>
			<version>4.3.0</version>
		</dependency>

实体

@Data
public class User {
          
   

    @Excel(name = "姓名")
    private String name;

    @Excel(name = "地址")
    private String address;

    @Excel(name = "电话")
    private String mobile;

}

简单实现

public void exportExcel(List<User> userList, HttpServletResponse httpServletResponse) throws IOException {
          
   
    	// 根据业务场景不同,数据获取不同
    	// 1.用户选取部分数据导出:前端将导出数据传参userList 
    	// 2.导出查询后的数据,不需要传参导出数据
    	// 拟造测试数据 
        List<User> userList = new ArrayList<>();
        User user = new User();
        user.setName("测试");
        user.setMobile("12345678900");
        user.setAddress("测试地址");
        userList.add(user);
    	// ExportParams("","") 中的名称是单个表名(sheet1,sheet2...)和表头名
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户数据表", "用户数据表", ExcelType.XSSF),User.class, userList);
    	// fileName的名字是Excel文件名
    	// 请教一个问题:如何解决这个文件名为中文时,导出的文件名一直是乱码
        String fileName = "UserListExcel";
        httpServletResponse.setCharacterEncoding("UTF-8");
        httpServletResponse.setHeader("content-Type", "application/vnd.ms-excel");
        httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + 			fileName + ".xlsx");
        workbook.write(httpServletResponse.getOutputStream());
    }
经验分享 程序员 微信小程序 职场和发展