当前位置:   article > 正文

EasyPoi实现Excel数据导入_easypoi导入excel到数据库

easypoi导入excel到数据库

        EasyPoi是一个基于Java的Excel导入导出框架,主要提供了Excel读取、写入等基本功能,并且支持通过注解来定义Excel文件的格式。

添加maven依赖

  1. <dependencies>
  2. <!--基础模块,提供了Excel读取、写入等基本功能-->
  3. <dependency>
  4. <groupId>cn.afterturn</groupId>
  5. <artifactId>easypoi-base</artifactId>
  6. <version>3.2.0</version>
  7. </dependency>
  8. <!--Web模块,提供了在Web应用中使用EasyPoi的相关功能-->
  9. <dependency>
  10. <groupId>cn.afterturn</groupId>
  11. <artifactId>easypoi-web</artifactId>
  12. <version>3.2.0</version>
  13. </dependency>
  14. <!--注解模块,提供了一些用于Excel导入导出的注解,例如@Excel、@ExcelField等-->
  15. <dependency>
  16. <groupId>cn.afterturn</groupId>
  17. <artifactId>easypoi-annotation</artifactId>
  18. <version>3.2.0</version>
  19. </dependency>
  20. <!--基于HibernateJava Bean验证框架,提供了一些常用的验证注解,例如@NotNull..-->
  21. <dependency>
  22. <groupId>org.hibernate.validator</groupId>
  23. <artifactId>hibernate-validator</artifactId>
  24. <version>6.1.5.Final</version>
  25. </dependency>
  26. <!--javax.el提供了Java EL的实现,简化Java应用程序中表达式的语言-->
  27. <dependency>
  28. <groupId>org.glassfish</groupId>
  29. <artifactId>javax.el</artifactId>
  30. <version>3.0.1-b11</version>
  31. </dependency>
  32. </dependencies>

注解定义Excel文件的格式

  1. //指定了生成Excel文件时的sheet名称
  2. @ExcelTarget("EasyPoi")
  3. public class UserBean {
  4. /*指定了生成Excel文件时该属性对应的列名称,
  5. 即生成的Excel文件中会有“编号”、“用户名”、“生日”和“工资”四列。*/
  6. @Excel(name = "编号")
  7. private Integer id;
  8. @Excel(name = "用户名")
  9. private String name;
  10. @Excel(name = "生日")
  11. private String birthday;
  12. @Excel(name = "工资")
  13. private Integer money;
  14. }

导出 

  1. @RestController
  2. @RequestMapping("user")
  3. public class UserController {
  4. @RequestMapping("uploadExcel")
  5. public String upload(MultipartFile excel) throws Exception {
  6. //初始化设置
  7. ImportParams params = new ImportParams();
  8. //设置 读取第几个选项卡
  9. params.setSheetNum(1);
  10. //设置表头 占几行
  11. params.setHeadRows(1);
  12. params.setTitleRows(1);
  13. //将上传Excel数据 封装成用户集合
  14. //第一个参数为:上传文件的读取流
  15. //第二个参数为:要封装实体对象的类模板
  16. //第三个参数为:初始化对象
  17. List<UserBean> list = ExcelImportUtil.importExcel(
  18. excel.getInputStream(),UserBean.class,params);
  19. System.out.println(list);
  20. return "ok";
  21. }
  22. }

        MultipartFile是Spring框架中的一个接口,用于处理HTTP multipart请求中的文件上传。当客户端上传文件时,服务器端可以通过MultipartFile接口获取上传的文件内容、文件名、文件类型等信息,并且可以将文件保存到本地磁盘或者其他存储介质中。

  1. getName():获取上传文件的参数名称。
  2. getOriginalFilename():获取上传文件的原始文件名。
  3. getContentType():获取上传文件的类型。
  4. getSize():获取上传文件的大小。
  5. getBytes();获取上传文件的字节数组。
  6. getInputStream();获取上传文件的InputStream流。
  7. transferTo():将上传文件保存到指定目录中。
  1. <head>
  2. <meta charset="UTF-8">
  3. <title>Title</title>
  4. <script src="axios.min.js"></script>
  5. <script src="util.js"></script>
  6. <script>
  7. function uploadExcel() {
  8. //使用FormData对象来创建表单数据
  9. let formObj = new FormData;
  10. //将上传的Excel文件添加到表单数据中
  11. //第一个参数:将获取到的文件添加到名为excel的FormData对象中
  12. //第二个参数:获取了id为excelFile的文件上传控件
  13. //第三个参数:获取了文件上传控件中选择的文件列表中的第一个文件
  14. formObj.append("excel",$("excelFile").files[0]);
  15. let config={
  16. headers: {'Content-Type': 'multipart/form-data' }
  17. }
  18. axios.get("/user/uploadExcel",formObj,config).then(resp=>{
  19. alert(resp.data);
  20. })
  21. }
  22. </script>
  23. </head>
  24. <body>
  25. 请选择Excel:<input type="file" id="excelFile"><br>
  26. <input type="button" value="上传" onclick="uploadExcel()">
  27. </body>

注意,如果要上传多个文件,可以在append方法中使用循环来逐一添加到FormData对象中。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/540337
推荐阅读
相关标签
  

闽ICP备14008679号