论坛首页 Java企业应用论坛

java操作Excel、PDF文件

浏览 84240 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-10-16  
together 写道
楼主弄错了,jxl的作者是一位英国人吧?
这是他的邮箱。我和他交流过。
andyk@andykhan.freeserve.co.uk


这个我还真的不敢确定
我隐隐约约记得是韩国的
呵呵
0 请登录后投票
   发表时间:2006-10-16  
thurm_zhang 写道
我们当时有个项目需要读写excel文件,所以稍微研究了一下这两个开源的组件,结果是poi对formula的支持不是很理想,对日期支持也有限(不过可以自定义类实现对日期的支持)。请问楼主有没有对jexcel和poi做全面的评估对比?


poi我没有在项目中使用过,只是看了下它的描述文档,貌似功能比jexcel多而且强大一点
但是我感觉jexcel简单一些,而且可以满足我的需求,事实jexcel确实比较好用
中文支持也不错,没有出现过乱码问题
不过好象更多人使用poi
0 请登录后投票
   发表时间:2006-10-26  
正需要用,谢谢!
0 请登录后投票
   发表时间:2006-10-26  
温柔一刀 写道
将Excel文件内容写入到数据库
                 for ( int  j = 0 ;j < column;j ++ )
                  {
                    System.out.println( " j= " + j);
                    sheet.getCell(j, i).getContents(); //  得到第j列第i行的单元格的类容         
                     student_info.setStudentID(sheet.getCell(j, i).getContents());    
                    student_info.setName(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSex(sheet.getCell( ++ j,i).getContents());    
                    student_info.setUnit(sheet.getCell( ++ j,i).getContents());    
                    student_info.setClass_(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( ++ j,i).getContents());    
                    student_info.setRemark(sheet.getCell( ++ j,i).getContents());                        
                }     
                 



这层循环好像不要吧...看你的好像知道多少列的嘛,为什么列还要循环呢?
取一行数据循环按列这么多次好像不对吧
0 请登录后投票
   发表时间:2006-10-26  
阿九 写道
温柔一刀 写道
将Excel文件内容写入到数据库
                 for ( int  j = 0 ;j < column;j ++ )
                  {
                    System.out.println( " j= " + j);
                    sheet.getCell(j, i).getContents(); //  得到第j列第i行的单元格的类容         
                     student_info.setStudentID(sheet.getCell(j, i).getContents());    
                    student_info.setName(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSex(sheet.getCell( ++ j,i).getContents());    
                    student_info.setUnit(sheet.getCell( ++ j,i).getContents());    
                    student_info.setClass_(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( ++ j,i).getContents());    
                    student_info.setRemark(sheet.getCell( ++ j,i).getContents());                        
                }     
                 



这层循环好像不要吧...看你的好像知道多少列的嘛,为什么列还要循环呢?
取一行数据循环按列这么多次好像不对吧

???  莫名其妙!
0 请登录后投票
   发表时间:2006-10-26  
至于生成PDF,iText还是不错的,功能比较全,就是image的处理不太好,费内存。

http://www.lowagie.com/iText/
0 请登录后投票
   发表时间:2006-10-27  
请问有人知道产生PDF文件格式的第三方包吗?想extremeTable 在生成PDF文件,有中文问题,解决不了!
0 请登录后投票
   发表时间:2006-10-27  
解析pdf呢,pdfbox有可以得到整个pdf文件的String的函数,操作很简单,可惜不支持中文,其他的操作pdf的lib我试了很多,好像都不支持直接得到整个pdf文件的String.
0 请登录后投票
   发表时间:2006-10-27  
小贾 写道
阿九 写道
温柔一刀 写道
将Excel文件内容写入到数据库
                 for ( int  j = 0 ;j < column;j ++ )
                  {
                    System.out.println( " j= " + j);
                    sheet.getCell(j, i).getContents(); //  得到第j列第i行的单元格的类容         
                     student_info.setStudentID(sheet.getCell(j, i).getContents());    
                    student_info.setName(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSex(sheet.getCell( ++ j,i).getContents());    
                    student_info.setUnit(sheet.getCell( ++ j,i).getContents());    
                    student_info.setClass_(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( ++ j,i).getContents());    
                    student_info.setRemark(sheet.getCell( ++ j,i).getContents());                        
                }     
                 



这层循环好像不要吧...看你的好像知道多少列的嘛,为什么列还要循环呢?
取一行数据循环按列这么多次好像不对吧

???  莫名其妙!



怎么会莫名奇妙呢?只是对这段程序有疑问而已。。。。为什么要循环列呢?
是不是应该这样写呢?
     
                     student_info.setStudentID(sheet.getCell(0, i).getContents());    
                    student_info.setName(sheet.getCell( 1,i).getContents());    
                    student_info.setSex(sheet.getCell( 2,i).getContents());    
                    student_info.setUnit(sheet.getCell( 3,i).getContents());    
                    student_info.setClass_(sheet.getCell( 4,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( 5,i).getContents());    
                    student_info.setRemark(sheet.getCell( 6,i).getContents());                        
                   
0 请登录后投票
   发表时间:2006-10-27  
阿九 写道
小贾 写道
阿九 写道
温柔一刀 写道
将Excel文件内容写入到数据库
                 for ( int  j = 0 ;j < column;j ++ )
                  {
                    System.out.println( " j= " + j);
                    sheet.getCell(j, i).getContents(); //  得到第j列第i行的单元格的类容         
                     student_info.setStudentID(sheet.getCell(j, i).getContents());    
                    student_info.setName(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSex(sheet.getCell( ++ j,i).getContents());    
                    student_info.setUnit(sheet.getCell( ++ j,i).getContents());    
                    student_info.setClass_(sheet.getCell( ++ j,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( ++ j,i).getContents());    
                    student_info.setRemark(sheet.getCell( ++ j,i).getContents());                        
                }     
                 



这层循环好像不要吧...看你的好像知道多少列的嘛,为什么列还要循环呢?
取一行数据循环按列这么多次好像不对吧

???  莫名其妙!



怎么会莫名奇妙呢?只是对这段程序有疑问而已。。。。为什么要循环列呢?
是不是应该这样写呢?
     
                     student_info.setStudentID(sheet.getCell(0, i).getContents());    
                    student_info.setName(sheet.getCell( 1,i).getContents());    
                    student_info.setSex(sheet.getCell( 2,i).getContents());    
                    student_info.setUnit(sheet.getCell( 3,i).getContents());    
                    student_info.setClass_(sheet.getCell( 4,i).getContents());    
                    student_info.setSpecialty(sheet.getCell( 5,i).getContents());    
                    student_info.setRemark(sheet.getCell( 6,i).getContents());                        
                   


恩,说的对,是没有必要,自己没有怎么想,开始感觉应该是两层循环
后来貌似不得不用++j来表示,呵呵,列是知道的,其实大可用您的那种写法
而且更简洁,Thanks.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics