首页 > 其他分享 >Apache POI库解析Excel文件

Apache POI库解析Excel文件

时间:2023-04-25 16:58:00浏览次数:49  
标签:解析器 Excel userList file POI Apache 解析 row

以下是使用Apache POI库解析Excel文件的示例代码:

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

org.apache.poi poi 5.1.0 org.apache.poi poi-ooxml 5.1.0

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

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

    // 创建工作簿
    try (Workbook workbook = WorkbookFactory.create(inputStream)) {
        // 获取第一个Sheet
        Sheet sheet = workbook.getSheetAt(0);

        // 遍历每一行,并将每行数据映射为User对象
        for (Row row : sheet) {
            if (row.getRowNum() == 0) {
                continue; // 跳过标题行
            }

            User user = new User();
            user.setName(row.getCell(0).getStringCellValue());
            user.setAge((int) row.getCell(1).getNumericCellValue());
            user.setGender(row.getCell(2).getStringCellValue());

            userList.add(user);
        }
    } 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解析器将文件解析为用户列表。最终,我们将解析后的用户列表作为响应返回给客户端。

总结:使用Apache POI库解析Excel需要先创建工作簿和Sheet,然后遍历每一行并将其映射为Java对象。以上是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。

标签:解析器,Excel,userList,file,POI,Apache,解析,row
From: https://www.cnblogs.com/henry-2020/p/17353133.html

相关文章

  • EasyExcel库实现Excel解析
    以下是使用EasyExcel库实现Excel解析的示例代码:1、添加EasyExcel依赖在pom.xml文件中添加以下依赖:com.alibabaeasyexcel2.2.11定义实体类定义一个实体类,用于映射Excel文件中的每行数据。java@DatapublicclassUser{@ExcelProperty("姓名")privateStringname;@E......
  • java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteA
    java.lang.NoClassDefFoundError:org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream  一、问题现象在导出Excel过程中,程序报错如下:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/commons/io/output/UnsynchronizedByteArra......
  • Service层报错org.apache.ibatis.binding.BindingException: Invalid bound statement
    如果在主启动类配置了包扫描@MapperScan注解,这个位置目录一定要写到dao层的目录,如:@MapperScan(“com.company.module.dao”)如果没有写到具体的dao层目录,写成@MapperScan(“com.company”)扫描的时候会把com.company.module.service目录也认为是dao目录扫进来,这时用到@Service注解......
  • [ahk]读取excel文件实例
    EXCEL内容如下:AutoHotkey代码如下:#Persistent#SingleInstance,force;2015年1月4日;sunwind;读取excel实例excel:=ComObjActive("Excel.Application")filepath:=A_ScriptDir."\循环读取.xlsx";自动运行、初始化Runnotepadxls:=Check(fil......
  • MinIO免费吗?其开源协议由Apache2.0变为AGPLv3意味着什么?
    来源:https://www.cnblogs.com/flying607/p/17236098.html最近做对象存储的选型,看到网上呼声较高的MinIO,于是去了解了一下,开源中国上写着其协议是Apache。 不放心又去github上看了一下,发现其协议是AGPLv3而且是半路换的协议,由Apache2.0编程了AGPL,这个变更的意思很明显,不然也......
  • 迁移学习(MEnsA)《MEnsA: Mix-up Ensemble Average for Unsupervised Multi Target Doma
    论文信息论文标题:MEnsA:Mix-upEnsembleAverageforUnsupervisedMultiTargetDomainAdaptationon3DPointClouds论文作者:AshishSinha,JonghyunChoi论文来源:2023 CVPR论文地址:download 论文代码:download视屏讲解:click1前言单目标域和多目标域2介绍单......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。而潮流计算,是指给定电网中一些参数、已知值和未知值中假设的初始......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。       而潮流计算,是指给定电网中一......
  • No qualifying bean of type 'org.apache.rocketmq.spring.core.RocketMQTemplate' av
    2023-04-2418:50:39.372WARN26732---[main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.BeanCreationException:Errorcreating......
  • excel的练习1--自定义单元格格式(win11)
    题目1.4自定义单元格格式。在EXCEL单元格区域设置自定义数字格式,实现如下效果:在该区域的任意单元格输入数字1,则显示为√,其他数据原样显示。则:1.格式定义形式为【1】.【提示:格式-单元格格式-自定义】2.格式定义之后得到的结果B4:F10复制粘贴为文本到第【2】空。答案步骤选......