今天重点研究了一下POI操作excel,结果这一开始就遇到很多问题.虽然这两种操作excel的方法我都没有在项目实践过,但我希望我可以了解更多方面的知识,趁现在有时间多看一下。 网上都说用poi怎么样用jxl怎么样,可是我还是不能体会到,因为我没有实际在项目中用到过,体会他们的优劣。 《POI在很多细节上有些bug且不支持写入图片,其他方面都比较不错; 而JXL就除了支持写入图片外,这点比POI好,其他地方都很差》 第一步,还是下载poi的包,找了好半天才找到 下载地址:http://labs.renren.com/apache-mirror/poi/release/bin/ 进去里面有好几个连接,我选择了后缀为zip的包<网上推荐>,(其实我后来因为不停的出错,然后有下载了其他,发现它里面需要的包都是那些,都一样的)。下载完以后解压,把poi-3.8目录下的jar包copy到自己项目的lib中。<!--网上推荐--> 然后开始了用poi操作excel的第一步。 public void createExcel(){ try { HSSFWorkbook hssfWb = new HSSFWorkbook(); FileOutputStream fileOutStream = new FileOutputStream(new File("D:excelSamplepoiExcel.xlsx")); //注意不管怎么,创建一个新的excel的时候一定要给加一个sheet(默认的sheet也行),要不然即使是xls的2003版本的也是创建了打不开 HSSFSheet zinaSheet = hssfWb.createSheet("zina sheet"); hssfWb.write(fileOutStream); fileOutStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 写完了这段以后我就执行,发现它可以生成一个excel在我指定的目录里,但是我去打开的时候却说excel被损坏,然后我就想到一个我用jxl的时候也遇到excel本身的问题,我想是不是也是因为excel的版本问题呢 注:excel2003是以后缀xls结尾 excel2007是以后缀xlsx结尾 而我本机安装的是2007的,是不是不可以呀,果然是与版本问题有关。 然后我又把xlsx那个后缀搞成xls,再执行可以产生并可以打开 } ------2012/7/3 关于POI操作excel也用了好几天了,虽然是自己做的一个不起眼的小sample,但这一过程中也真的是比较艰难,遇到蛮多问题,通过自己查阅相关的资料也已经解决了,可能只是皮毛之见: 不论是什么操作最主要的还是那几个:读取、创建写入excel,基本操作就是这样 在读取一个excel的时候,分两种情况,写入创建2003和2007两种版本的,每次给2007版excel写入数据完以后,去打开它然后就出错说文件已损坏之类的弹出框,最后我稍微改了一下(忘记改什么地方了),总之改动挺小的,改完以后就可以顺利打开它了。