POI 读取Excel

一、常见API

1.文件(file) :File file=new File("文件位置“);

2.输入流(FileInputStream):FileInputStream fs=new FileInputStream(file);

3.工作簿(XSSFWorkbook) :XSSFWorkbook workbook=new XSSFWorkbook(InputStream inputStream);

4.电子表格(XSSFSheet)

创建电子表格: XSSFSheet sheet =workbook.createSheet("Sheet Name");

打开电子表格方式:

(1).XSSFSheet sheet=workbook.getSheetAt(0):sheet顺序从0开始

(2).XSSFSheet sheet=workbook.getSheet(String sheetname):根据sheet名称

5.行(XSSFRow)

创建行: XSSFRow row=sheet.createRow(int rowNum);

得到行: XSSFRow xssfRow=sheet.getRow(int rowNum);行从0开始

             row.getFirstCellNum()//得到第一行

             row.getLastCellNum()//得到最后一行

6.单元格(XSSFCell)

创建单元格:XSSFCell cell=xssfRow.createCell(0);//创建单元格

                     cell.getCellType(); //判断cell单元格的类型

得到单元格:XSSFCell cell=xssfRow.getCell(int cellNumh) 单元格从0开始

单元格的数据类型判断:

常量: 说明: 取值:

Cell.CELL_TYPE_NUMERIC 数值类型 cellValue.getNumberCellValue()

Cell.CELL_TYPE_STRING 字符串类型 cellValue.getStringCellValue()

Cell.CELL_TYPE_BOOLEAN 布尔类型 cellValue.getBooleanCellValue()

Cell.CELL_TYPE_FORMULA 表达式类型 需要转换

Cell.CELL_TYPE_ERROR 异常类型 cellValue.getErrorCellValue()

Cell.CELL_TYPE_BLANK 空

二、读取EXCEL 文件

public static void main(String[] args) throws Exception{
    //输入文件
    File file=new File("E:\\test\\user.xlsx");
    //转换输入流
    FileInputStream fis=new FileInputStream(file);
    //创建工作簿
    XSSFWorkbook workbook=new XSSFWorkbook(fis);
    //得到电子表格(第几个)
    XSSFSheet sheet=workbook.getSheetAt(0);
    //遍历单元格
    for(int rowNum=0;rowNum<=sheet.getLastRowNum();rowNum++) { //循环得到行
        XSSFRow xssfRow=sheet.getRow(rowNum);  //获取行
        if(xssfRow==null) continue;
        for(int columnNum =0;columnNum<xssfRow.getLastCellNum();columnNum++){ //循环获取列(单元格)
            XSSFCell cell=xssfRow.getCell(columnNum);
            if(cell==null) continue;
            //判断单元格内容类型:根据类型不同用相应的方法获取值
            switch (xssfRow.getCell(columnNum).getCellType()){
                case Cell.CELL_TYPE_NUMERIC:
                    System.out.print(cell.getNumericCellValue()+"         ");
                    break;
                case Cell.CELL_TYPE_STRING:
                    System.out.print(cell.getStringCellValue()+"         ");
                    break;
            }
        }
        System.out.println();
    }
}

确定Excel结构,每列内容和类型,直接取值:

for(int columnNum =0;columnNum<xssfRow.getLastCellNum();columnNum++){ //列
            XSSFCell cell=xssfRow.getCell(columnNum);
            if(cell==null) continue;
            if(cell.getColumnIndex() == 1){  //获取第几列单元格内容
                //第二列,类型设置为string,然后赋值给name
                cell.setCellType(CellType.STRING);
                userInfo.setUsername(cell.getStringCellValue());
            }
            if(cell.getColumnIndex() == 2){
                userInfo.setPassword(cell.getStringCellValue());
            }
            if(cell.getColumnIndex() == 3){
                userInfo.setEmail(cell.getStringCellValue());
            }
            if(cell.getColumnIndex() == 4){
                userInfo.setPhone(cell.getStringCellValue());
            }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章