快生活 - 生活常识大全

操作的两种方法二


  今天重点研究了一下POI操作excel,结果这一开始就遇到很多问题.虽然这两种操作excel的方法我都没有在项目实践过,但我希望我可以了解更多方面的知识,趁现在有时间多看一下。
  网上都说用poi怎么样用jxl怎么样,可是我还是不能体会到,因为我没有实际在项目中用到过,体会他们的优劣。
  《POI在很多细节上有些bug且不支持写入图片,其他方面都比较不错;
  而JXL就除了支持写入图片外,这点比POI好,其他地方都很差》
  第一步,还是下载poi的包,找了好半天才找到
  下载地址:http://labs.renren.com/apache-mirror/poi/release/bin/
  进去里面有好几个连接,我选择了后缀为zip的包&lt;网上推荐&gt;,(其实我后来因为不停的出错,然后有下载了其他,发现它里面需要的包都是那些,都一样的)。下载完以后解压,把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写入数据完以后,去打开它然后就出错说文件已损坏之类的弹出框,最后我稍微改了一下(忘记改什么地方了),总之改动挺小的,改完以后就可以顺利打开它了。
网站目录投稿:映儿