JAVA 的 EXCEL 数据导入导出—EasyExcel 的方法的实现(实例)

本文详细介绍了如何使用EasyExcel在JAVA中实现EXCEL数据的导入导出,包括在pom.xml中引入依赖,实体类注解,制定导出模板,编写Mapper.xml查询SQL,以及Controller层的代码优化,最后展示了前端VUE如何对接进行数据交互。
摘要由CSDN通过智能技术生成

JAVA 的 EXCEL 数据导入导出—EasyExcel 的方法的实现(实例)

参考链接 :https://www.yuque.com/easyexcel/doc/easyexcel

第一步在pom.xml中导入EasyExcel依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.4</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
</dependency>

第二步实体类中添加注解

@Data
public class ProductOutboundDetail implements Serializable {
   
	private static final long serialVersionUID = 1L;
	@ExcelProperty("序号")
	private Integer num;
	@ExcelProperty("品名")
	private String productName;
	@ExcelProperty("规格")
	private String productGrades;
	@ExcelProperty("单位")
	private String drugUnit;
	@ExcelProperty("生产批次")
	private String batchNum;
	@DateTimeFormat("yyyy-MM-dd")
	private Date bestBefore;
	@ExcelProperty("单价(元)")
	private BigDecimal sellPrice;
	@ExcelProperty("数量")
	private Integer outboundNum;
	@ExcelProperty("金额(元)")
    private BigDecimal  outmoney;

第三步 制定导出excel模版

  • { } 表示表中主体部分的变量
  • { . } list集合数据 的时候要注意模板中{.} 多了个点 表示list

在web项目的webapp下新建一个文件夹template用来存放excel模版,导出的时候要引入这个模版。
在这里插入图片描述
excel模版制定为
id改为num
在这里插入图片描述
注意

  • 表格中品名、规格…字段名需要跟实体类中的名称保持一致
  • { } 变量名可以自己定义,也可以跟数据库保持一致
  • excel后缀名为.xlsx

第四步 Mapper.xml中写查询sql

在这里插入图片描述

 <select id="findExcelDataInMasterId" resultType="com.dyt.entity.ProductOutboundDetail">
        select product_name,product_grades,drug_unit,outbound_num,sell_price,
               outbound_num*sell_price as outmoney,batch_num,best_before
        from product_outbound_detail
        where master_id = #{
   master_id}
    </select>

第五步 dao层—impl层—interface接口—Controller层

第一步:List<ProductOutboundDetail> findExcelDataInMasterId (Integer masterId);
第二步:
/**
 * 导出excel数据
*/
@Override
public List<ProductOutboundDetail> findExcelDataInMasterId(Integer masterId) {
   
    List<ProductOutboundDetail> excelDataInMasterId = productOutboundDetailDao.findExcelDataInMasterId(masterId);
    return excelDataInMasterId;
}
第三步:
List<ProductOutboundDetail> findExcelDataInMasterId (Integer masterId);

BigDecimalUtil ChineseYuanUtil 在分类常用工具中可以找到

第四步:
 @ApiOperation(value = "导出出库数据")
 @ApiResponses(value = {
   
        @ApiResponse(code = 200, message = "操作成功,返回成功状态码,保存在data集合元素中"),
        @ApiResponse(code = 500, message = "内部错误,信息由msg字段返回")
    })
 @PostMapping("/EasyExcel")
 @ResponseBody
public String printEasyExcelTemplate(HttpServletRequest req, HttpServletResponse resp, Integer masterId,String name) throws Exception {
   
        //1.配置下载属性
        resp.setContentType("application/x-msdownload");
        resp.setCharacterEncoding("utf-8");
        //2.设置文件名
        String fileName ="大养堂出库表" + "-" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + ".xlsx";
        //3.查询获取数据列表
        List<ProductOutboundDetail> list = productOutboundDetailService.fin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>