使用Java通过POI读取EXCEL中的数据

 这里有个Excel,怎么使用java读取excel中的数据呢?

使用Java通过POI读取EXCEL中的数据_第1张图片

文件存放位置:

使用Java通过POI读取EXCEL中的数据_第2张图片

首先引入poi的jar包

     
            org.apache.poi
            poi
            3.17
        
        
            org.apache.poi
            poi-ooxml
            3.17
        

我这里写了一个People类,目的是想把Excel中的数据读取出来后转成这个类,方便后续进行操作。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class People {
    private String name;
    private String age;
    private String sex;
    private String area;
}

 

然后看代码:

/**
 * FileName: MyExcelTest
 * Author:  zp
 * Date:    2020/2020/10/11/10:16
 * Description:
 */
package excel;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Description: 
 * @author zpzp6
 * @create 2020/2020/10/11/10:16
 * @since 1.0.0
 */
public class MyExcelTest {
    public static void main(String[] args) throws IOException {
        //获取工作簿
        XSSFWorkbook book = new XSSFWorkbook("E:\\我的文件\\测试\\测试.xlsx");
        //获取工作表
        XSSFSheet sheet = book.getSheetAt(0);
//        //第一种读取读取所有数据,实际中不需要
//        //获取行
//        for (Row cells : sheet) {
//            //获取单元格
//            for (Cell cell : cells) {
//                //获取单元格中的内容
//                cell.setCellType(CellType.STRING);
//                System.out.println(cell.getStringCellValue());
//            }
//        }
        List peopleList=new ArrayList<>();
        //普通for循环
        //开始索引0  结束索引
        int lastRowNum = sheet.getLastRowNum();
        System.out.println("最后一行:"+lastRowNum);
        for (int i = 1; i <= lastRowNum; i++) {
            //获取单元格
            XSSFRow row = sheet.getRow(i);
            if(row!=null){
                List list =new ArrayList<>();
                for (Cell cell : row) {
                    if(cell!=null && !"".equals(cell)){
                        //此处是把单元格都转换成String类型
                        cell.setCellType(CellType.STRING);
                        String cellValue = cell.getStringCellValue();
                        System.out.println("单元格数据:"+cellValue);
                        list.add(cellValue);
                    }
                }
                if(list.size()>0){
                    People people = new People(list.get(0), list.get(1), list.get(2), list.get(3));
                    peopleList.add(people);
                }
            }


        }
        for (People people : peopleList) {
            System.out.println(people);
        }
        //释放资源
        book.close();
    }

}

结果:

使用Java通过POI读取EXCEL中的数据_第3张图片

如果有这样的报错是因为打开了Excel文件,关闭就好。

使用Java通过POI读取EXCEL中的数据_第4张图片

 

 

 

 

 

你可能感兴趣的