Poi如何去讀取excel文件

很久沒有寫博客了,這幾天寫項目,在其中找到的一個文件 是讀取excel文件內容的

主要是通過poi去去讀取文件的每一行的。我下載poijar文件是poi-bin-3.8-beta2-20110408.zip 那下邊來分享一下代碼吧:

package com.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class TestExcel {
      //記錄類的輸出信息
      static Log log = LogFactory.getLog(TestExcel.class); 
      //獲取Excel文檔的路徑
      public static String filePath = "D://excel.xls";
      public static void main(String[] args) {
            try {
                  // 創建對Excel工作簿文件
//HSSFWorkbook wookbook= new HSSFWorkbook(new FileInputStream(filePath));
                  // 在Excel文檔中,第一張工作表的缺省索引是0,
      // 其語句爲:HSSFSheet sheet = workbook.getSheetAt(0);
                //  HSSFSheet sheet = wookbook.getSheet("Sheet1");
                  Workbook book = null;
                  try {
                      book = new XSSFWorkbook(filePath);
                  } catch (Exception ex) {
              book = new HSSFWorkbook(new FileInputStream(filePath));
                  }

                  Sheet sheet = book.getSheet("Sheet1");
                  //獲取到Excel文件中的所有行數
                  int rows = sheet.getPhysicalNumberOfRows();
                  //遍歷行
                  for (int i = 0; i < rows; i++) {
                        // 讀取左上端單元格
                  Row row = sheet.getRow(i);
                        // 行不爲空
                  if (row != null) {
                              //獲取到Excel文件中的所有的列
                    int cells = row.getPhysicalNumberOfCells();
                              String value = "";     
                              //遍歷列
                              for (int j = 0; j < cells; j++) {
                                    //獲取到列的值
                                    Cell cell = row.getCell(j);
                                    if (cell != null) {
                                          switch (cell.getCellType()) {
                                                case Cell.CELL_TYPE_FORMULA:
                                                break;
                                                case Cell.CELL_TYPE_NUMERIC:
                                    value += cell.getNumericCellValue() + ",";        
                                                break;  
                                                case Cell.CELL_TYPE_STRING:
                                               value += cell.getStringCellValue() + ",";
                                                break;
                                                default:
                                                      value += "0";
                                                break;
                                    }
                              }      
                        }
                        // 將數據插入到mysql數據庫中
                        String[] val = value.split(",");
                        for(int j=0;j<val.length;j++){
                          //每一行列數中的值遍歷出來
                        System.out.println(val[j]);
                          }
                      
                    
                  }
             }
      } catch (FileNotFoundException e) {
            e.printStackTrace();
      } catch (IOException e) {
            e.printStackTrace();
      }
      }
}

 

 

 

 

 

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