jxl学习笔记(一)-------如何向excel文件中追加写入,而不会覆盖之前的内容

这几天在写论文实验的时候,需要对比不同算法的不同指标,然后需要将每个实验跑出来的结果放在一个文档里面,进行对比,之前是每个实验放在独立的文件当中,现在全部放在一起,对比更加直观。

    private  static  int index = 1 ;
    private  static  WritableWorkbook book =  null;
    private  static  WritableSheet sheet =  null;
    private static void writeExcel(String sheetname,List<Double> bill, List<Double> cpltRt, List<Double> avgECost, int devicenum)
    {
        try {
                String testName = sheetname;
                sheetname = "summary";
                File file = new File(sheetname+".xls");
                int baseRow = (index-1)*6;
                 Number[][] numbers =  new Number[4][bill.size()];
                if(index==1)
                {
                    file.delete();
                }
                if(!file.exists())
                {
                    book =  Workbook.createWorkbook(file);
                    sheet = book.createSheet(sheetname, 0) ;

                    Label testLabel = new Label(0,baseRow,testName);
                     sheet.addCell(testLabel);
                for(int i=0;i<bill.size();i++)
                {
                    numbers[0][i] = new Number(i,baseRow+1,(i+1)*Parameters.Task_Inc_Step);
                    numbers[1][i] = new Number(i,baseRow+2,bill.get(i));
                    numbers[2][i] = new Number(i,baseRow+3,cpltRt.get(i));
                    numbers[3][i] = new Number(i,baseRow+4,avgECost.get(i));

                    sheet.addCell(numbers[0][i]);
                    sheet.addCell(numbers[1][i]);
                    sheet.addCell(numbers[2][i]);
                    sheet.addCell(numbers[3][i]);
                }
                    book.write();
                    book.close();
                }
                else
                {
                    Workbook wb = Workbook.getWorkbook(file);
                    File tempfile = new File("tempfile.xls");
                    WritableWorkbook wwb = Workbook.createWorkbook(tempfile, wb);
                    WritableSheet ws = wwb.getSheet(0);


                    Label testLabel = new Label(0,baseRow,testName);
                    ws.addCell(testLabel);
                for(int i=0;i<bill.size();i++)
                {
                    numbers[0][i] = new Number(i,baseRow+1,(i+1)*Parameters.Task_Inc_Step);
                    numbers[1][i] = new Number(i,baseRow+2,bill.get(i));
                    numbers[2][i] = new Number(i,baseRow+3,cpltRt.get(i));
                    numbers[3][i] = new Number(i,baseRow+4,avgECost.get(i));

                    ws.addCell(numbers[0][i]);
                    ws.addCell(numbers[1][i]);
                    ws.addCell(numbers[2][i]);
                    ws.addCell(numbers[3][i]);
                }
                    wwb.write();
                    wwb.close();
                    wb.close();
                    file.delete();
                    tempfile.renameTo(file);
                }
                index ++;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }



简单说一下算法的思路,第一次写入的时候,用WritableWorkbook  WritableSheet 新建,后来,使用之前的已经写入的文件,创建一个新文件,最后,将文件改名。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值