java通过poi实现导入excel数据

2022/4/12 17:13:22

本文主要是介绍java通过poi实现导入excel数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

poi支持.xlsx

poi提供了HSSFWorkbook和XSSFWorkbook两个实现类。区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对.xslx文件。

此处记录XSSFWorkbook方式,处理.xslx文件。

部分基本概念:

一个工作簿可以有多少工作表,一个工作表可以有多行,一行可以有多个单元格。

XSSFWorkbook:工作簿

XSSFSheet:工作表

XSSFRow:行

XSSFCell:单元格

示例:

demo.xlsx

 

 添加poi相关依赖:

1 <dependency>
2             <groupId>org.apache.poi</groupId>
3             <artifactId>poi</artifactId>
4             <version>4.0.0</version></dependency>
5         <dependency>
6             <groupId>org.apache.poi</groupId>
7             <artifactId>poi-ooxml</artifactId><version>4.0.0</version>
8         </dependency>

代码实现:

@Controller
@RequestMapping("/excel")
public class ExcelController {
    @RequestMapping("importExcel")
    public String importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
        InputStream inputStream = file.getInputStream();
        String contentType = file.getContentType();
        System.out.println("文件类型是==========="+contentType);
        String fileName = file.getOriginalFilename();
        System.out.println("文件名字是==========="+fileName);
        try {
        if (!fileName.endsWith(".xlsx")){
            throw new IllegalArgumentException("文件格式不正确!");
        }
        if (file.isEmpty()) {
            throw new Exception("文件为空!");
        }
            //根据路径获取这个操作excel的实例
            XSSFWorkbook wb = new XSSFWorkbook(inputStream);
            //根据页面index 获取sheet页
            Sheet sheet = wb.getSheetAt(0);
            //获取sheet页共有多少行
            int totalRos = sheet.getPhysicalNumberOfRows();
            System.out.println("=========总行数为:"+totalRos);
            for (int i = 0; i <totalRos; i++) {
                int lastCellNum = sheet.getRow(i).getLastCellNum();
                System.out.println("=========第"+i+"行的数据如下:=========");
                for (int j = 0; j < lastCellNum; j++) {
                    String cell = sheet.getRow(i).getCell(j).toString();
                    System.out.println(cell);
                }
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "success";
    }
}

结果:

文件类型是===========application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
文件名字是===========demo.xlsx
=========总行数为:3
=========第0行的数据如下:=========
ID
姓名
年龄
工作

=========第1行的数据如下:=========
1.0
张三
20.0
家里躺

=========第2行的数据如下:=========
2.0
李四
22.0
到处闯

 



这篇关于java通过poi实现导入excel数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程