使用easyexcel快速导出xlsx表格(简洁、高效、易懂)

news/2024/11/19 19:22:24/

Easyexcel是一款非常好用的POI框架,是为了让开发者快速的实现excel,word,pdf的导入导出,基于Apache poi基础上的一个工具包。

  • 基于注解的导入导出,修改注解就可以修改Excel
  • 支持常用的样式自定义
  • 基于map可以灵活定义的表头字段
  • 支持一对多的导出,导入
  • 支持模板的导出,一些常见的标签,自定义标签
  • 支持HTML/Excel转换
  • 支持word的导出,支持图片,Excel

    目  录

一、引入依赖

二、在实体类中添加注解

三、controller层增加导出接口

四、在serviceImpl层编写导出表格方法

五、访问接口,下载表格



一、引入依赖

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

二、在实体类中添加注解

@Data
@HeadRowHeight(30)  //表头行高
@ContentRowHeight(15)  //内容行高
@ColumnWidth(18)  //列宽
@ContentFontStyle(fontHeightInPoints = (short) 12) //字体大小
@ApiModel(value = "ExportEntity", description = "ExportEntity")
public class ExportEntity {/** id */@ApiModelProperty(value = "id")@ExcelProperty("id")private Long id;/** 名称 */@ApiModelProperty(value = "名称")@ExcelProperty("名称")private String name;/** 年龄 */@ApiModelProperty(value = "年龄")@ExcelProperty("年龄")private Integer age;/** 性别 */@ApiModelProperty(value = "性别")@ExcelIgnoreprivate String sex;
}

默认所有字段都会和excel去匹配,使用@ExcelIgnore注解会忽略该字段。

@ExcelProperty:指定当前字段对应 excel 中的那一列。可以根据名字或者Index去匹配,默认第一个字段就是index=0,以此类推。⚠️要么全部不写,要么全部用index,要么全部用名字去匹配,切勿混合使用。

其他表格样式注解:

@HeadRowHeight(30)  表头行高
@ContentRowHeight(15)  //内容行高
@ColumnWidth(18)  //列宽
@ContentFontStyle(fontHeightInPoints = (short) 12)  //字体大小

三、controller层增加导出接口

  @GetMapping("/export")public void Export(HttpServletResponse response) {service.export(response);}

四、在serviceImpl层编写导出表格方法

  @Overridepublic void export(HttpServletResponse response) {List<Export> list = new ArrayList<>();for (int i = 1; i <= 3; i++) {Export export = new Export(i,"张三","20");list.add(export);}try {//HttpServletResponse消息头参数设置response.setCharacterEncoding("UTF-8");response.setHeader("Content-Transfer-Encoding", "binary");response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");response.setHeader("Pragma", "public");response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");String fileName = "导出列表"+ ".xlsx";fileName = new String(fileName.getBytes(), "ISO-8859-1");response.setHeader("Content-Disposition", "attachment;filename=" + fileName );EasyExcel.write(response.getOutputStream(), Export.class).autoCloseStream(Boolean.FALSE).sheet("导出列表").doWrite(list);} catch (Exception e) {e.printStackTrace();}}

五、访问接口,下载表格


http://www.ppmy.cn/news/501007.html

相关文章

用Python一步读写csv、xlsx表格

需求代码测试 需求 python的内置库csv提供了读写csv表格的方法&#xff0c;第三方库openpyxl 提供了读写xlsx表格的方法。 不过&#xff0c;为了避免每次调用这些库时都要回忆其用法&#xff0c;笔者将基本的读写操作封装成函数——通过python的list类型直接读写csv、xlsx表格…

CAPL 无法处理 xlsx 表格,Python老大哥曲线助攻

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

vue项目前端导出xlsx表格带边框

最近项目中要求不再通过发送请求导出excel表格了&#xff0c;于是在网上找了找方法&#xff0c;在这记录一下方便以后查阅 一、首先先在项目中安装这几个包 npm install xlsx --save npm install file-saver --save npm install xlsx-style --save二、包安装完成之后在需要导出…

用matlab进行xlsx表格的提取和操作

用matlab进行xlsx表格的提取和操作 一、数据的提取二、垃圾数据的清除三、数据的分类四、图像的绘制 在学习数学建模时&#xff0c;我们会碰到大数据的问题&#xff0c;这类问题通常要进行数据预处理&#xff0c;这是我用matlab进行预处理的一些经验总结。数据预处理通常分为三…

百万excel导入mysql_百万级xlsx表格导入数据库的实现方案

需求是这样的,供应商给到一份 xlsx 表格(144MB),里面刚好有 100w 行数据(11列)。我需要把它们稍作处理后写入到 mysql 数据库 项目基于 Laravel,既然需要稍作处理,那我首先想到的就是找一个能读 xlsx 的 composer 包 我尝试过最知名的PhpSpreadsheet、对 Laravel 友好的 La…

python-生成xlsx表格

引入 xlsxwriter 包 import xlsxwriter workbook xlsxwriter.Workbook(currency_format.xlsx) cell_format_one workbook.add_format({bold: True, font_color: red}) cell_format_two workbook.add_format({bold: False, font_color: green}) # cell_format_two.set_font_…

xls和xlsx的区别

xls和xlsx都是表格文件格式&#xff0c;后缀看起来也非常像&#xff0c;那为何会设置这两种格式呢&#xff1f;它们之间一定也很多别区别。word是常用办公软件&#xff0c;我觉得有必要了解清楚xls和xlsx的区别才行&#xff0c;下面就给大家详细介绍下吧。 1、文件格式不同&am…

Excel表格文件,.xls和.xlsx格式的区别

用一句话概括&#xff0c;xlsx和.xls格式的主要区别在于&#xff0c;.xls格式单个工作表最多支持65536行&#xff0c;256列。.xlsx格式最多支持1048576行&#xff0c;16384列。此外就是&#xff0c;存储同样多的数据&#xff0c;.xlsx格式文件更小。基本就这两点区别。下面是关…