poi读取和写入

本章讲解如何使用poi对excel文件的读取和写入

1、在pox.xml文件中导入依赖:

       <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

如果去maven仓库搜索,请看一下选择

poi读取和写入

 

2、获取指定单元格

         FileInputStream fis = new FileInputStream("src\\main\\resources\\test.xlsx");
        //获取Workbook对象
        Workbook workbook = WorkbookFactory.create(fis);
        //获取Sheet对象,getSheetAt(索引):是根据索引获取sheet,getSheet("sheet名称"):根据sheet名称获取sheeet
        Sheet sheetAt = workbook.getSheetAt(0);
        //获取行对象
        Row row = sheetAt.getRow(1);
        //获取单元格对象
        Cell cell = row.getCell(1);
        //把单元格的类型转换为String的,不然是其他类型的获取会报错
        cell.setCellType(CellType.STRING);
        String stringCellValue = cell.getStringCellValue();
        fis.close();

3、循环取全部的

        FileInputStream fis = new FileInputStream("src\\main\\resources\\test.xlsx");
        //获取Workbook对象
        Workbook workbook = WorkbookFactory.create(fis);
        //获取Sheet对象,getSheetAt(索引):是根据索引获取sheet,getSheet("sheet名称"):根据sheet名称获取sheeet
        Sheet sheetAt = workbook.getSheetAt(0);
        //获取最后一行的下标
        int lastRowNum = sheetAt.getLastRowNum();
        for (int i = 0; i < lastRowNum; i++){
            Row row = sheetAt.getRow(i);
            //获取当前行的最后一个单元格的下标
            short lastCellNum = row.getLastCellNum();
            for (int j = 0; j < lastCellNum; j++){
                Cell cell = row.getCell(j);
                cell.setCellType(CellType.STRING);
                String stringCellValue = cell.getStringCellValue();
                System.out.println(stringCellValue);
            }
        }
     fis.close();
 

4、对指定单元格的内容进行修改后回写到本文件,也可以存草其他文件。如果文件不存在则创建,如果文件存在则先清空数据

       FileInputStream fis = new FileInputStream("src\\main\\resources\\test.xlsx");
        //获取Workbook对象
        Workbook workbook = WorkbookFactory.create(fis);
        //先把资源关闭,不然会一直占用资源,
        fis.close();
        //获取Sheet对象,getSheetAt(索引):是根据索引获取sheet,getSheet("sheet名称"):根据sheet名称获取sheeet
        Sheet sheetAt = workbook.getSheetAt(0);
        Row row = sheetAt.getRow(1);
        Cell cell = row.getCell(1);
        //对单元格进行判断,如果单元格的内容为空会报空指针异常
        if (cell == null){
            cell = row.createCell(1);
            cell.setCellValue("test");
        }else {
            cell.setCellValue("test");
        }
        FileOutputStream fos = new FileOutputStream("src\\main\\resources\\test.xlsx");
        workbook.write(fos);
        fos.close();
    }

 

上一篇:南京市POI数据


下一篇:Apache POI操作word文档的博客合集