package com.lilysilk.util;
import java.io.FileInputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
* @author dsp
*@Comments : 導入導出Excel工具類
*此類事實現操作指定的excel文件中的指定sheet頁、
*讀取指定的單元格內容、獲取sheet中最後一行的行號的功能
*
*
**/
public class ExcelUtil {
private static XSSFSheet ExcelWSheet;
/**
* excel文件對象
*/
private static XSSFWorkbook ExcelWBook;
/**
* 單元格對象
*/
private static XSSFCell ExcelCell;
/**
* 捨得需要操作的excel的文件路徑和sheet名稱
* 在讀,寫excel文件時,均需先調用此方法,設定要操作的excel的路徑和sheet名稱
* @param Path
* @param SheetName
*/
public static void setExcelFile(String Path,String SheetName) {
FileInputStream ExcelFile;
try {
/**
* 實例化excel文件的FileInputStream對象
*/
ExcelFile=new FileInputStream(Path);
/**
* 實例化EXCEL文件的execlWXSSFWorkbook對象
*/
ExcelWBook =new XSSFWorkbook(ExcelFile);
/**
* 實例化 XSSFCell 對象,指定excel文件中的sheet名稱,後續用於sheet中行、列和單元格的操作
*/
ExcelWSheet=ExcelWBook.getSheet(SheetName);
} catch (Exception e) {
/**
* TODO Auto-generated catch block
*/
e.printStackTrace();
}
}
/**
* 讀取excel文件中指定的單元格的函數,此函數只支持擴展名爲.xlsx的excel文件
* @param rowNum
* @param colNum
* @return
* @throws Exception
*/
public static String getCellData(int rowNum,int colNum)throws Exception {
try {
/**
* 通過函數參數知道單元格的行號與列號,獲取指定的單元格對象
*/
ExcelCell=ExcelWSheet.getRow(rowNum).getCell(colNum);
/**
* 如果單元格的內容爲字符串類型,則使用getStringCellValue方法來獲取單元格內容
* 如果單元格的內容爲數字類型, 則使用getNumericCellValue方法來獲取單元格內容
*/
String CellData =ExcelCell.getCellType()==XSSFCell.CELL_TYPE_STRING?ExcelCell.getStringCellValue()+"":String.valueOf(Math.round(ExcelCell.getNumericCellValue()));
return CellData;
}
catch(Exception e){
e.printStackTrace();
/**
* 讀取遇到異常,則返回空字符串
*/
return "錯了";
}
}
/**
* 獲取excel文件的最後一行的行號
* @return
*/
public static int getLastRowNum() {
/**
* 函數返回sheet的最後一行行號
*/
return ExcelWSheet.getLastRowNum();
}
}
java之操作excel類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.