JDK1.5 JXL1.4 JXL如果版本与JDK不兼容造成读写失败
JXL官网下载有版本对应说明
JXL官网下载有版本对应说明
public class ExcelReader implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6695377007617333835L;
public ExcelReader(String path){
excelPath = path;
init();
}
private static Logger logger = LoggerManager.getLogger(ExcelReader.class);
//Excel文件路径
private String excelPath = "";
//Excel文件对象
private Workbook workBook = null;
//Excel文件Sheet所有对象
private HashMap<String, Sheet> sheetsMap = new HashMap<String, Sheet>();
private Sheet[] sheets = null;
//当前sheet对象
private Sheet currentSheet = null;
//Excel中Sheet行所含所有列对象
//private Cell[] cells = null;
//当前sheet表中当前行标
private int index = 0;
//当前sheet表中行数
private int rows = 0;
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public void setExcelPath(String excelPath) {
this.excelPath = excelPath;
init();
}
/**
* 初始化Excel文件对象
*/
private void init(){
try {
workBook = Workbook.getWorkbook(new File(excelPath));
sheets = workBook.getSheets();
//设置默认的当前活动表为XLS文件第一个表
currentSheet = sheets[0];
index = 0;
rows = currentSheet.getRows();
for(Sheet sheet : sheets){
sheetsMap.put(sheet.getName(), sheet);
}
} catch (Exception e) {
logger.error("初始化Excel文件对象失败!");
}
}
/**
* 根据表名设置活动sheet
* @param sheetName sheet表名
*/
public void setCurrentSheet(String sheetName){
if(sheetsMap.containsKey(sheetName)){
currentSheet = sheetsMap.get(sheetName);
index = 0;
rows = currentSheet.getRows();
}
}
/**
* 根据给出表号设置当前活动sheet表
* @param _index 表号
*/
public void setCurrentSheet(int _index){
if(_index>sheets.length || _index < 0){
logger.info("请设置合理的Sheet表号:0~" + sheets.length);
return;
}
currentSheet = sheets[_index];
//重置行号
index = 0;
rows = currentSheet.getRows();
}
/**
* 取得当前活动sheet表
* @return
*/
public Sheet getCurrentSheet(){
return currentSheet;
}
/**
* 通过sheet表名取得sheet表
* @param sheetName
* @return
*/
public Sheet getSheet(String sheetName){
if(sheetsMap.containsKey(sheetName)){
return sheetsMap.get(sheetName);
}
return null;
}
/**
* 根据给出的表标号取得sheet表
* @param _index
* @return
*/
public Sheet getSheet(int _index){
if(_index>sheets.length || _index < 0){
logger.info("请设置合理的Sheet表号:0~" + sheets.length);
return null;
}
return sheets[_index];
}
/**
* 重置当前sheet行标
*/
public void reset(){
index = 0;
}
/**
* 判断当前sheet表是否还有其他行
* @return true/false
*/
public boolean hasMore(){
return (index <rows)? true : false;
}
/**
* 取得下一行所有列
* @return Cell[]
*/
public Cell[] next(){
return currentSheet.getRow(index++);
}
/**
* 取得sheet表中对应行、列的内容
* @param sheetName sheet表名
* @param row 行标
* @param cols 列标
* @return
*/
public String getContents(String sheetName,int row, int cols){
if(workBook == null){
logger.info("Excel文件对象未初始化!");
return "";
}
if(sheetsMap.containsKey(sheetName)){
return sheetsMap.get(sheetName).getCell(row, cols).getContents();
}
return "";
}
/**
* 取得sheet表中对应行、列的内容
* @param _index 表号
* @param row 行标
* @param cols 列标
* @return
*/
public String getContents(int _index,int row, int cols){
if(workBook == null){
logger.info("Excel文件对象未初始化!");
return "";
}
if(_index>sheets.length || _index < 0){
logger.info("请设置合理的Sheet表号:0~" + sheets.length);
return null;
}
return sheets[index].getCell(row, cols).getContents();
}
/**
* Excel文件对象释放
*/
public void release(){
if( workBook != null){
workBook.close();
}
}
}