Java使用poi包讀取execl

? Execl分為兩個(gè)版本,后綴名分別為.xls和.xlsx,讀取兩種不同版本的execl使用不同的類,所需包直接從apache官網(wǎng)下載導(dǎo)入即可

一、讀取.xls類型的execl文件

/**

*讀取后綴名為.xls的execl文件

*

*@param filePath

*@return

*@throws Exception

*/

public static boolean readXls(String filePath){

InputStream is=null;

HSSFWorkbook hssfWorkbook=null;

try {

is = new FileInputStream(filePath);

hssfWorkbook = new HSSFWorkbook(is);

// 讀取第一張execl表

HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);

int rowNum = 0;

DecimalFormat df = new DecimalFormat("#");

boolean hasMessyCode=false;

for (rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {

HSSFRow row = hssfSheet.getRow(rowNum);

int cellNumber=row.getLastCellNum();

for(int cellNum=0;cellNum<=cellNumber;cellNum++){

HSSFCell cell=row.getCell(cellNum);

switch (cell.getCellType()) {

case XSSFCell.CELL_TYPE_STRING:?????//字符串類型

String cell=row.getCell(cellNum).getStringCellValue();???//進(jìn)行邏輯處理

break;

case XSSFCell.CELL_TYPE_NUMERIC:???//數(shù)值類型

String cell=df.format(cell.getNumericCellValue()).toString();

break;

case XSSFCell.CELL_TYPE_BOOLEAN:???//布爾類型

String cellValue=String.valueOf(cell.getBooleanCellValue());

break;

case XSSFCell.CELL_TYPE_FORMULA:??//表達(dá)式類型

String cell=cell.getCellFormula()+"";

break;

default:

break;

}

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

canOpen=0;

}

return false;

}

二、讀取.xlsx類型的execl文件

/**

*讀取后綴名為。xlsx的execl文件

*

*@param filePath

*@return

*@throws Exception

*/

public static boolean readXlsx(String filePath){

InputStream is=null;

XSSFWorkbook xssfWorkbook=null;

try {

is = new FileInputStream(filePath);

xssfWorkbook = new XSSFWorkbook(is);

// 讀取第一個(gè)execl表

XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);

int rowNum = 0;

DecimalFormat df = new DecimalFormat("#");

boolean hasMessyCode=false;

for (rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {

XSSFRow row = xssfSheet.getRow(rowNum);

int cellNumber=row.getLastCellNum();

for(int cellNum=0;cellNum<=cellNumber;cellNum++){

//校驗(yàn)cell值

XSSFCell cell=row.getCell(cellNum);

switch (cell.getCellType()) {

case XSSFCell.CELL_TYPE_STRING:

String cellStr=row.getCell(cellNum).getStringCellValue();

break;

case XSSFCell.CELL_TYPE_NUMERIC:

String cellStr=df.format(cell.getNumericCellValue()).toString();

break;

case XSSFCell.CELL_TYPE_BOOLEAN:

String cellStr=String.valueOf(cell.getBooleanCellValue());

break;

case XSSFCell.CELL_TYPE_FORMULA:

String cellStr=cell.getCellFormula()+"";

break;

default:

break;

}

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

canOpen=0;

e.printStackTrace();

}

return false;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近由于工作需要,需要寫(xiě)一個(gè)工具,實(shí)現(xiàn)搜索功能,數(shù)據(jù)來(lái)源為excel表格。目前主要實(shí)現(xiàn)方式為兩種,一種是基于jxl...
    依靜軒閱讀 6,660評(píng)論 1 9
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx閱讀 8,467評(píng)論 0 16
  • 轉(zhuǎn)自鏈接 3.項(xiàng)目實(shí)踐 3.1基于.xls模板生成Excel文件 3.2生成九九乘法表 3.3生成一張工資單 3....
    腿毛褲閱讀 3,735評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,625評(píng)論 18 399
  • 西風(fēng)游蕩三千里,黃蘆好色啼烏起。無(wú)語(yǔ)問(wèn)添衣,窗前月又西。 離人常入夢(mèng),脈脈愁相送。又是異鄉(xiāng)秋,殘紅淚欲流。
    Harvest收獲閱讀 939評(píng)論 72 137

友情鏈接更多精彩內(nèi)容