Java 對Excel的數據讀取

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.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class TestPoiExcel {
static Log log = LogFactory.getLog(TestPoiExcel.class);

public static String fileToBeRead="e://test.xls";
public static void main(String argv[]) {
try {
// 創建對Excel工作簿文件的引用
HSSFWorkbook workbook= new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 創建對工作表的引用。
//   本例是按名引用(讓我們假定那張表有着缺省名"Sheet1")
// 也可用getSheetAt(int index)按索引引用,
//   在Excel文檔中,第一張工作表的缺省索引是0,
//   其語句爲:HSSFSheet sheet = workbook.getSheetAt(0);
HSSFSheet sheet= workbook.getSheet("Sheet1");
int rows = sheet.getPhysicalNumberOfRows();
for (int r = 0; r < rows; r++) {
//   讀取左上端單元
HSSFRow row = sheet.getRow(r);
if (row != null) {
int cells = row.getPhysicalNumberOfCells();
String value = "";
// log.info(cells);
for (short c = 0; c < cells; c++) {
HSSFCell cell = row.getCell(c);
if (cell != null){
switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_FORMULA :
//
break;

case HSSFCell.CELL_TYPE_NUMERIC:
value += (long)cell.getNumericCellValue()+",";
break;

case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue()+",";
break;

default:
value +="0,";
}
}
}
//下面可以將查找到的行內容用SQL語句INSERT到oracle
log.info(value);
}
}
}catch(Exception e){
System.out.println(e);
}
}


void test() throws FileNotFoundException, IOException{

// 創建對Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
//   // 創建對工作表的引用。
//   // 本例是按名引用(讓我們假定那張表有着缺省名"Sheet1")
HSSFSheet sheet = workbook.getSheet("Sheet1");
//   // 也可用getSheetAt(int index)按索引引用,
//   // 在Excel文檔中,第一張工作表的缺省索引是0,
//   // 其語句爲:HSSFSheet sheet = workbook.getSheetAt(0);
//   // 讀取左上端單元
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
// 輸出單元內容,cell.getStringCellValue()就是取所在單元的值
System.out.println("左上端單元是: " + cell.getStringCellValue());
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章