|
锁定老贴子 主题:处理Excel文件的开源软件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2006-06-09
我们最近在做处理excel文件的开源软件的评估,目前找到的有两款:apache 的 POI 和 Java Excel API, 但感觉都不是很好, 有没有人用过其他的或者推荐一些比较好的开源项目,不胜感激!
谢谢 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2006-06-09
这两个基本上已经是最好的了, 不知道你需要实现什么功能用它们还不够?
|
|
| 返回顶楼 | |
|
最后更新时间:2006-06-10
Apache 的 POI 和 Java Excel API应当说可以满足你大部分的需求了吧,还有一个是JACOB
For documentation see: http://users.rcn.com/danadler/jacob/ 我自己在写一下个类似于Hibernate一样的ORM的东西叫ExcelORM,准备开源:) |
|
| 返回顶楼 | |
|
最后更新时间:2006-06-12
首先感谢楼上两位的建议!
我对poi不是很满意是因为在读xls文件时,有时读取date类型时只能返回numeric数值(我是用HSSFDateUtil.isCellDateFormatted()判断的,不知是否妥当),而且做性能测试时poi反映出来的速度不尽如人意, 还请楼上的指点一下。谢谢 |
|
| 返回顶楼 | |
|
最后更新时间:2006-06-13
thurm_zhang 写道 首先感谢楼上两位的建议!
我对poi不是很满意是因为在读xls文件时,有时读取date类型时只能返回numeric数值(我是用HSSFDateUtil.isCellDateFormatted()判断的,不知是否妥当),而且做性能测试时poi反映出来的速度不尽如人意, 还请楼上的指点一下。谢谢 switch(cellType) { case HSSFCell.CELL_TYPE_NUMERIC: // Numeric if(HSSFDateUtil.isCellDateFormatted(hssfCell)) // { // objCell = // Common.formatDate(hssfCell.getDateCellValue()); objCell = hssfCell.getDateCellValue(); } else { objCell = String.valueOf(hssfCell.getNumericCellValue()); // objCell = // Double.valueOf(hssfCell.getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_STRING: // String objCell = hssfCell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_FORMULA: // Formula objCell = String.valueOf(hssfCell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_BLANK: // Blank objCell = hssfCell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN: // boolean objCell = Boolean.valueOf(hssfCell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_ERROR: // Error break; //............... |
|
| 返回顶楼 | |
|
最后更新时间:2006-06-14
我也是用的这种方法,但在处理实际表单的时候某些日期格式还是会被输出为数值类型,后来我加了一段比较恶心的判断,不管怎样还是解决了这个问题:
[code:1] case HSSFCell.CELL_TYPE_NUMERIC: System.out.print("dataformat: " + df.getFormat(cell.getCellStyle().getDataFormat())); if (HSSFDateUtil.isCellDateFormatted(cell) || df.getFormat(cell.getCellStyle().getDataFormat()).indexOf("m") != -1 || df.getFormat(cell.getCellStyle().getDataFormat()).indexOf("y") != -1 || df.getFormat(cell.getCellStyle().getDataFormat()).indexOf("d") != -1) { System.out.print("Date " + cell.getDateCellValue()); } else { System.out.print("Numeric " + cell.getNumericCellValue()); } break; [/code:1] |
|
| 返回顶楼 | |
|
最后更新时间:2006-06-14
POI 好象不能处理Excel中的图片
|
|
| 返回顶楼 | |
|
最后更新时间:2006-06-14
可以的, 以前我问过这个问题.
|
|
| 返回顶楼 | |
|
最后更新时间:2006-06-14
现在poi还只提供写入image的功能好像,不能读取image
|
|
| 返回顶楼 | |
|
最后更新时间:2006-06-15
如果处理很复杂,要求功能很强大的话. 可以尝试一下对OpenOfiice UNO编程.
我现在正在做把PowerPoint转换成图片的功能,就是用OpenOffice做的,我再开一个贴有OpenOffice编程经验的讨论一下吧 |
|
| 返回顶楼 | |









