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());
            }
}

 

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