很久沒有寫博客了,這幾天寫項目,在其中找到的一個文件 是讀取excel文件內容的
主要是通過poi去去讀取文件的每一行的。我下載poi的jar文件是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();
}
}
}