- 浏览: 54123 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
virtual_function:
你确定啊 ?
关于JAVA ZIP追加新文件问题 -
bannamoon:
dongbiying 写道 帮我一大忙!不过,怎么没有说明要 ...
java读取excel -
dongbiying:
帮我一大忙!不过,怎么没有说明要jar呀!呵呵
java读取excel
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(); } } }
发表评论
-
java io重定向System.out,System.err屏蔽程序调试信息
2012-01-11 17:01 1153来源于java io犀牛书籍系列。 1,先定义空实现输出类一枚 ... -
iconst
2011-12-05 15:31 8110~5 iconst; -1 iconst_m1 -
java实现任意整数相乘
2011-08-01 13:34 1053public class Mutiply { pu ... -
Spring属性文件加密
2011-04-20 14:24 863使用Spring时,一般使用 <context:prop ... -
myeclipse ant打包 Could not find the main class. Program will exit
2011-04-14 09:16 1314情况1:myeclipse ANT设置不正确。 解决:重新设置 ... -
面向关系编程
2011-04-05 20:46 794写在前面的话。该文章用于记录当时的一些面向对象的思考。 目前的 ... -
数据结构学习之二叉树
2011-04-03 14:39 853TreeNode.java public class Tr ... -
关于POI导出EXCEL写入多个数据有效性验证
2011-03-29 17:22 2017建立多个HSSFDataValidation //POI ... -
JAVA三种解析方式解析XML
2011-03-22 12:48 1096JAVA中存在三种方式解析XML。例中代码未进行异常捕捉。 1 ... -
JFreeChart饼图取消图中标签
2011-03-10 12:30 1048//创建圆饼图 JFreeChartchart=Char ... -
ProGuard代码混淆及Spring框架时找不到利用注解获取的bean
2010-09-19 10:39 5238ProGuard代码混淆及Spring框架时找不到利用注解获取 ... -
Java字节码查看器及反编译工具
2010-08-27 17:39 1186两个工具见附件! -
JAVA JNI调用本地方法
2010-08-07 12:49 924声明Native方法: package cn.com.sk ... -
JAVA 自定义Annotation(注解)
2010-08-07 00:33 971注解接口隐式的继承java.lang.annotation.A ... -
关于JAVA ZIP追加新文件问题
2010-08-04 22:45 2561JAVA中ZipOutputStream是不支持直接向原.zi ... -
java泛型
2010-08-03 15:57 844Java泛型只是在编译器将[类型变量]都替换成了Object类 ... -
JAVA 正则表达式 贪心与非贪心
2010-04-22 20:23 3315java正则表达式中默认的是贪心匹配。如果要实现非贪心匹配,需 ... -
JAVA写excel
2010-04-17 08:10 1043在用JXL写入EXCEL文件时遇到一个比较奇怪的问题。例如每次 ...
评论
JXL1.4 jdk版本1.5