} catch (Exception e) {
System.out.println("已運行 xlCreate() : " + e);
}
}
/**
* 讀取excel,遍歷各個小格獲取其中信息,并判定其是否是手機號碼,并對正確的手機號碼進行顯示
*
* 注重: 1.sheet, 以0開始,以workbook.getNumberOfSheets()-1結束
* 2.row,以0開始(getFirstRowNum),以getLastRowNum結束
* 3.cell,以0開始(getFirstCellNum),以getLastCellNum結束, 結束的數目不知什么原因與顯示的長度不同,可能會偏長
*/
public void readExcel() {
//將被表示成1.3922433397E10的數轉化為13922433397
//DecimalFormat df = new DecimalFormat("#");
try {
// 創建對Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
fileToBeRead));
//System.out.println("===SheetsNum===" + workbook.getNumberOfSheets());//獲取sheet數
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
HSSFSheet aSheet = workbook.getSheetAt(numSheets);//獲得一個sheet
if(!aSheet.isDisplayFormulas())//判定是顯示aSheet中公式的值
aSheet.setDisplayFormulas(true);
//System.out.println("+++getFirstRowNum+++" + aSheet.getFirstRowNum());
//System.out.println("+++getLastRowNum+++" + aSheet.getLastRowNum());
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
.getLastRowNum(); rowNumOfSheet++) {
if (null != aSheet.getRow(rowNumOfSheet)) {
HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
//System.out.println(">>>getFirstCellNum<<<"+aRow.getFirstCellNum());
//System.out.println(">>>getLastCellNum<<<"+aRow.getLastCellNum());
for (short cellNumOfRow = 0; cellNumOfRow <= aRow
.getLastCellNum(); cellNumOfRow++) {
//System.out.println(">>>rowNumOfSheet<<<"+rowNumOfSheet);
//System.out.println(">>>cellNumOfRow<<<"+cellNumOfRow);
if (null != aRow.getCell(cellNumOfRow)) {
HSSFCell aCell = aRow.getCell(cellNumOfRow);
int cellType = aCell.getCellType();
switch (cellType) {
case HSSFCell.CELL_TYPE_NUMERIC://Numeric
String strCell =String.valueOf(aCell.getNumericCellValue());
if(HSSFDateUtil.isCellDateFormatted(aCell))
{
//double sa = aCell.getNumericCellValue();
//Date dd = HSSFDateUtil.getJavaDate(sa);
//HSSFDataFormat tt = new HSSFDataFormat(workbook);
//dd.toString();
System.out.println(aCell.getDateCellValue());
}
else
System.out.println(strCell);
break;
case HSSFCell.CELL_TYPE_STRING://String
strCell = aCell.getStringCellValue();
System.out.println(strCell);
break;
case HSSFCell.CELL_TYPE_FORMULA://formula
//strCell =aCell.getCellFormula();
strCell = String.valueOf(aCell.getNumericCellValue());
System.out.println(strCell);
break;
case HSSFCell.CELL_TYPE_BLANK://blank
strCell = aCell.getStringCellValue();
System.out.println(strCell);
break;
default:
System.out.println("----------------格式讀入不正確!");//其它格式的數據
}
}
}
}
}
}
System.out.println("http://////////////////////////////sheet end///////////////////////////////////////////");
}
} catch (Exception e) {
System.out.println("ReadExcelError" + e);
}
}
//閱讀指定行和列的單元格的值,注重:行、列下標是從0開始的
public void getSpecial(short numRow ,short numCol) {
try {
// 創建對Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
if (null != workbook.getSheetAt(0)) {
HSSFSheet aSheet = workbook.getSheetAt(0);//獲得一個sheet
if (null != aSheet.getRow(numRow)) {
HSSFRow aRow = aSheet.getRow(numRow);
if (null != aRow.getCell(numCol)) {
HSSFCell aCell = aRow.getCell(numCol);
int cellType = aCell.getCellType();
switch (cellType) {
case 0://Numeric
String strCell =String.valueOf(aCell.getNumericCellValue());
if(HSSFDateUtil.isCellDateFormatted(aCell))
System.out.println("00000000000000000"+aCell.getDateCellValue());
else
System.out.println(strCell);
break;
case 1://String
strCell = aCell.getStringCellValue();
System.out.println("111111111111111111"+strCell);
break;
case 2://formula
aSheet.setDisplayFormulas(true);
strCell = String.valueOf(aCell.getNumericCellValue());
System.out.println("2222222222222222222"+strCell);
break;
case 3://blank
strCell = aCell.getStringCellValue();
System.out.println("3333333333333333333"+strCell);
break;
default:
System.out.println("----------------格式讀入不正確!");//其它格式的數據
}
}
}
}
} catch (Exception e) {
System.out.println("ReadExcelError" + e);
}
}
public static void main(String[] args) {
POItest poi = new POItest();
//poi.CreateExcel();
poi.readExcel();
poi.getSpecial((short)4,(short)4);//第五行第五列的數據值
}
}