Loading... ## Hutool官网: [传送阵](https://www.hutool.cn/) ## 导入依赖: ```java <!--hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.0</version> </dependency> ``` ## User: ```java package cn.bdmcom.entity; import java.io.Serializable; import java.util.Date; import cn.hutool.core.annotation.Alias; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * @TableName sys_user */ @Data @AllArgsConstructor @NoArgsConstructor @TableName("sys_user") @ApiModel("用户实体类") public class User implements Serializable { /** * id */ @Alias("id") // 使用 Hutool 导出的excel字段名 @TableId(type = IdType.AUTO) @ApiModelProperty("用户id") private Integer id; /** * 用户名 */ @Alias("用户名") @TableField("username") @ApiModelProperty("用户名") private String username; /** * 密码 */ @JsonIgnore @Alias("密码") @TableField("password") @ApiModelProperty("用户密码") private String password; /** * 昵称 */ @Alias("昵称") @TableField("nickname") @ApiModelProperty("用户昵称") private String nickname; /** * 邮箱 */ @Alias("邮箱") @ApiModelProperty("用户邮箱") private String email; /** * 电话 */ @Alias("电话") @ApiModelProperty("用户手机号") private String phone; /** * 地址 */ @Alias("地址") @ApiModelProperty("用户地址") private String address; /** * 创建时间 */ @Alias("创建时间") @ApiModelProperty("createTime") private Date createTime; /** * 逻辑删除 1:已删除 0:未删除 */ @TableLogic @JsonIgnore @ApiModelProperty("deleted") private Integer deleted; /** * 用户头像 */ @Alias("头像") @ApiModelProperty("头像") private String avatarUrl; } ``` ## UserController: ```java /** * 导出接口 */ @GetMapping("/export") public void export(HttpServletResponse response) throws IOException { // 从数据库查询出所有数据 final List<User> list = userService.list(); // 通过工具类创建writer 写出到磁盘路径 // final ExcelWriter writer1 = ExcelUtil.getWriter(fileUploadPath + "/用户信息.xlsx"); // 写到浏览器 final ExcelWriter writer = ExcelUtil.getWriter(true); // 自定义标题别名 /* writer.addHeaderAlias("id", "id"); writer.addHeaderAlias("username", "用户名"); writer.addHeaderAlias("password", "密码"); writer.addHeaderAlias("nickname", "昵称"); writer.addHeaderAlias("email", "邮箱"); writer.addHeaderAlias("phone", "电话"); writer.addHeaderAlias("address", "地址"); writer.addHeaderAlias("createTime", "创建时间"); writer.addHeaderAlias("avatarUrl", "头像");*/ // 一次性写出到list内的对象到excel,使用默认样式,强制输出标题 writer.write(list, true); // 设置浏览器响应的格式 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); String fileName = URLEncoder.encode("用户信息", "UTF-8"); response.setHeader("Content-Disposition","attachment;filename=" + fileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); out.close(); writer.close(); } /** * excel导入 * @param file * @throws IOException */ @PostMapping("/import") public Boolean imp(MultipartFile file) throws IOException { final InputStream inputStream = file.getInputStream(); final ExcelReader reader = ExcelUtil.getReader(inputStream); final List<User> list = reader.readAll(User.class); final boolean result = userService.saveBatch(list); inputStream.close(); return result; } ``` ## 效果图:  最后修改:2022 年 09 月 25 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果文章有用,请随意打赏。