首页 > 其他分享 >EasyExcel库实现Excel解析

EasyExcel库实现Excel解析

时间:2023-04-25 16:56:59浏览次数:43  
标签:解析器 EasyExcel Excel userList 解析 public

以下是使用EasyExcel库实现Excel解析的示例代码:

1、添加EasyExcel依赖
在pom.xml文件中添加以下依赖:

com.alibaba easyexcel 2.2.11 定义实体类 定义一个实体类,用于映射Excel文件中的每行数据。

java
@Data
public class User {
@ExcelProperty("姓名")
private String name;

@ExcelProperty("年龄")
private Integer age;

@ExcelProperty("性别")
private String gender;

}

2、创建解析器
java
@Component
public class ExcelParser {

public List<User> parse(InputStream inputStream, String fileName) throws IOException {
    List<User> userList = new ArrayList<>();

    // 创建读取器
    try (InputStream in = inputStream) {
        ExcelReader excelReader = EasyExcel.read(in).build();

        // 读取Excel文件中的第一个Sheet,并将每行数据映射为User对象
        ReadSheet readSheet = EasyExcel.readSheet(0).head(User.class).build();
        excelReader.read(readSheet).forEach(data -> {
            userList.add((User) data);
        });
    } catch (Exception e) {
        throw new IOException("Failed to parse Excel file: " + fileName, e);
    }

    return userList;
}

}

3、在Controller中使用解析器
在Spring Boot web应用程序中,我们可以将文件上传到服务器,并使用上面创建的Excel解析器来解析它。以下是一个简单的Controller方法,用于处理文件上传请求,并使用Excel解析器解析上传的Excel文件。

java
@RestController
@RequestMapping("/api/excel")
public class ExcelController {

@Autowired
private ExcelParser excelParser;

@PostMapping("/parse")
public ResponseEntity<List<User>> parseExcel(@RequestParam("file") MultipartFile file) {
    try {
        List<User> userList = excelParser.parse(file.getInputStream(), file.getOriginalFilename());
        return ResponseEntity.ok(userList);
    } catch (IOException e) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
    }
}

}
这个例子中,我们使用了Spring Boot的MultipartFile来接收上传的Excel文件,然后使用Excel解析器来将文件解析为用户列表。最终,我们将解析后的用户列表作为响应返回给客户端。

总结:使用EasyExcel库实现Excel解析非常容易,只需要定义一个实体类,创建一个解析器并读取Excel文件即可。以上是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。

标签:解析器,EasyExcel,Excel,userList,解析,public
From: https://www.cnblogs.com/henry-2020/p/17353143.html

相关文章

  • Turndown 源码解析:一、辅助函数
    extend()Object.assign的补丁。functionextend(destination){for(vari=1;i<arguments.length;i++){varsource=arguments[i];for(varkeyinsource){if(source.hasOwnProperty(key))destination[key]=source[key];}}ret......
  • Android开发之一:10.0 USB弹窗权限流程解析
    1.新建activity,获取UsbManagerusbManager=(UsbManager)getSystemService(Context.USB_SERVICE)2.获取所以的USB设备HashMap<String,UsbDevice>map=usbManager.getDeviceList()3.过滤别的USB设备,拿到自己USB的USBDevice类,然后请求USB权限,usbManager.requestPermission(us......
  • [问题记录]k8s集群中coredns解析失败
    目录[问题记录]k8s集群中coredns解析失败故障现象问题排查问题解析举例说明:解决方案修改ndots参数参考文档[问题记录]k8s集群中coredns解析失败故障现象在k8s集群,使用coredns提供集群内部dns服务但是在使用过程中,偶现解析公网域名失败的情况,应用内日志记录显示UnknownHost问......
  • CentOS 服务器部署 DNS 解析服务
    需求在centos云服务器上部署一个dns解析服务,以供windows电脑可以使用这个服务器ip作为网络的dns代理。我的服务器ip为192.168.126.241,我想在我的windows电脑访问abc.baidu.com时解析到ip为110.112.113.111的服务器上,访问www.baidu.com时解析到123.111.111.111的服务器上。尽量模......
  • 深入理解C#泛型:new与where关键字全解析
    C#泛型中new和where是重要的关键字,它们都可以用于约束泛型类型参数的限制;它们都用于提高代码的安全性和可用性,它们的作用在很大程度上提高了代码的可读性和可维护性。在这篇文章中,我们将一起了解泛型中的new和where,以及它们之间的区别。1.new关键字在C#泛型中,new关键字被用于指......
  • [ahk]读取excel文件实例
    EXCEL内容如下:AutoHotkey代码如下:#Persistent#SingleInstance,force;2015年1月4日;sunwind;读取excel实例excel:=ComObjActive("Excel.Application")filepath:=A_ScriptDir."\循环读取.xlsx";自动运行、初始化Runnotepadxls:=Check(fil......
  • J1939 CAN多包发送的帧解析
    关于J1939多包数据传输问题(电动汽车BMS和直流充电机之间CAN报文的解读_腾讯新闻(qq.com))   常见帧    ......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。而潮流计算,是指给定电网中一些参数、已知值和未知值中假设的初始......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。       而潮流计算,是指给定电网中一......
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)
    好家伙,发现自己的网络知识十分匮乏,赶紧补一下 这里先举个我生活中的例子欸,作业不会写了,上网搜一下用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子) 假设这是我们第一次访问bing的首页当我向浏览器中输入https://cn.bing.com/并按下回车浏览器做了什么?(我......