日期:2014-05-20  浏览次数:20891 次

java poi 导出Excel并追加数据
  我的思路是这样子的,假如10000条数据,我要导到Excel表格中,而每次我只导1000条,需要导10次
每导一次我都把写入流关了,得到新的流导第二次。第三次。。。。。直到导完,我只看到第一次导的数据,其它几次的数据都看不到,这是为什么?
代码如下

         //工作薄的代码已创建,以下是核心代码
         for(int i=1; i<=10; i++){
             output = new FileOutputStream("d:/1.xls");
             //如果是第一次,我创建sheet对像
             if(i == 1){
                 sheet = workBook.createSheet();
                 //这段的作用是创建Excel的表头,详细代码就不贴出来了
                 this.printTableContext(sheet);
                 workBook.setSheetName(0,"sheet1");
             }
             //这是查询结果,每次1000条,假如 
             list = new Query().queryList(sql);
             //写内容   
             this.printContext(1000*(i-1),sheet,list);
 
             workBook.write(output);
             output.flush();
             output.close();
         }


这段是核心代码,我只是第一次创建了我的sheet对像,这个对像一直存在,第二次的时候就直接用这个对像,可是第二次写的时候,数据显示不出来,求高手指导啊。
------解决方案--------------------
  output = new FileOutputStream("d:/1.xls");
 for(int i=1; i<=10; i++){
             //如果是第一次,我创建sheet对像
             if(i == 1){
                 sheet = workBook.createSheet();
                 //这段的作用是创建Excel的表头,详细代码就不贴出来了
                 this.printTableContext(sheet);
                 workBook.setSheetName(0,"sheet1");
             }
             //这是查询结果,每次1000条,假如 
             list = new Query().queryList(sql);
             //写内容   
             this.printContext(1000*(i-1),sheet,list);
 
             workBook.write(output);
             output.flush();