论坛首页 Java版

处理Excel文件的开源软件

浏览 4533 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2006-06-09
我们最近在做处理excel文件的开源软件的评估,目前找到的有两款:apache 的 POI 和 Java Excel API, 但感觉都不是很好, 有没有人用过其他的或者推荐一些比较好的开源项目,不胜感激!

谢谢
   
最后更新时间:2006-06-09
这两个基本上已经是最好的了, 不知道你需要实现什么功能用它们还不够?
   
0 请登录后投票
最后更新时间:2006-06-10
Apache 的 POI 和 Java Excel API应当说可以满足你大部分的需求了吧,还有一个是JACOB

For documentation see: http://users.rcn.com/danadler/jacob/

我自己在写一下个类似于Hibernate一样的ORM的东西叫ExcelORM,准备开源:)
   
0 请登录后投票
最后更新时间:2006-06-12
首先感谢楼上两位的建议!

我对poi不是很满意是因为在读xls文件时,有时读取date类型时只能返回numeric数值(我是用HSSFDateUtil.isCellDateFormatted()判断的,不知是否妥当),而且做性能测试时poi反映出来的速度不尽如人意, 还请楼上的指点一下。谢谢
   
0 请登录后投票
最后更新时间: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;
//...............
   
0 请登录后投票
最后更新时间: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]
   
0 请登录后投票
最后更新时间:2006-06-14
POI 好象不能处理Excel中的图片
   
0 请登录后投票
最后更新时间:2006-06-14
可以的, 以前我问过这个问题.
   
0 请登录后投票
最后更新时间:2006-06-14
现在poi还只提供写入image的功能好像,不能读取image
   
0 请登录后投票
最后更新时间:2006-06-15
如果处理很复杂,要求功能很强大的话. 可以尝试一下对OpenOfiice UNO编程.
我现在正在做把PowerPoint转换成图片的功能,就是用OpenOffice做的,我再开一个贴有OpenOffice编程经验的讨论一下吧
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐