springboot结合POI导入导出excel文件

Posted Firm陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot结合POI导入导出excel文件相关的知识,希望对你有一定的参考价值。

1.读取excel第一个sheet页的第一列数据并放到集合

 <!-- 读取后缀为xlsx或xls的excel操作需要导入包 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.14</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.14</version>
        </dependency>
 List<String> sugList = new ArrayList<String>();
        if (file == null) {
            //代表没有文件
            return 0;
        }
        if (file.getOriginalFilename() != null && !"".equals(file.getOriginalFilename())) {
            String filename = file.getOriginalFilename();
            //excel2003
            if (filename.split("\\\\.")[1].equals("xls")) {
                try {
                    //POI导入文件,存放到list集合
                    HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(file.getInputStream()));
                    //意思是有几个文件,一个excel可能有多个sheet,这里只读取第一个
                    int sheets = workbook.getNumberOfSheets();
                    //只读取第一个sheet
                    HSSFSheet sheetAt = workbook.getSheetAt(0);
                    //这个表示当前sheet有多少行数据,一行一行读取就行
                    int rows = sheetAt.getPhysicalNumberOfRows();
                    for (int i = 0; i < rows; i++) {
                        // Batch batch = new Batch();
                        //某一行的数据,是一行一行的读取
                        HSSFRow row = sheetAt.getRow(i);
                        HSSFCell cell = row.getCell(0);
                        String cellData = cell.getStringCellValue();
                        sugList.add(cellData);
                    }
                } catch (RuntimeException | IOException e) {

                }
                //excel2007
            } else if (filename.split("\\\\.")[1].equals("xlsx")) {
                //POI导入文件,存放到list集合
                try {
                    Workbook workbook = WorkbookFactory.create(file.getInputStream());
                    // XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
                    //意思是有几个文件,一个excel可能有多个sheet,这里只读取第一个
                    // int sheets = workbook.getNumberOfSheets();
                    Sheet sheetAt = workbook.getSheetAt(0);  //示意访问sheet
                    //只读取第一个sheet
                    // XSSFSheet sheetAt = (XSSFSheet) workbook.getSheetAt(0);
                    //这个表示当前sheet有多少行数据,一行一行读取就行,但是会把没有数据的行读出来,需要加异常处理
                    int rows = sheetAt.getPhysicalNumberOfRows();
                    for (int i = 0; i < rows; i++) {
                        Row row1 = sheetAt.getRow(i);
                        String cellData = row1.getCell(0).getStringCellValue();
                        sugList.add(cellData);
                    }
                } catch (RuntimeException | IOException | InvalidFormatException e) {
                    return 0;
                }
            }
        } else {
            return 0;
        }

以上是关于springboot结合POI导入导出excel文件的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot实现Excel导入导出,好用到爆,POI可以扔掉了!

SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」

SpringBoot加Poi仿照EasyPoi实现Excel导出

springboot 实现后端接口操作Excel的导出批量导入功能

SpringBoot+POI方式导出excel加水印

SpringBoot+POI方式导出excel加水印