以动态方式将多个记录写入excel的最佳方法是什么?

时间:2013-11-26 08:31:33

标签: java selenium webdriver export-to-excel

我正在使用selenium webdriver测试ERP应用程序。我需要将结果写入excel表。现在我正在编写单独的代码来写入excel。有7个主要模块,并且在每个主模块10个子模块中,当我为每个步骤验证编写代码时,这些子模块增加了代码。 我目前的代码: -

Label col12row9 = new Label(12,j,arlogin[3],getCellFormatnormal(redFont));
ws.addCell(col12row9);
Label col0row9 = new Label(0, j,"ReqSmok"+i);
ws.addCell(col0row9);
Label col1row9 = new Label(1, j,"Browser Details");
Range col1row9r = ws.mergeCells(1,j, 5, j); 
ws.addCell(col1row9);
Label col6row9 = new Label(6,j,"Get the Browser name ");
Range col2row9r = ws.mergeCells(6,j, 11, j);    
ws.addCell(col6row9);

每个条目 我正在寻找一些方法,我可以每次传递所有六个值,它将写入excel

我期望的代码是这样的: -

private void ResulttoExcellabel(String[] ResulttoExcellabel)
        throws IOException, InterruptedException, WriteException {

    WritableSheet sheet1 = null;
    FileOutputStream f1 = new FileOutputStream(
            "D:\\smoketest_AIM.xls");
    WritableWorkbook wwb = Workbook.createWorkbook(f1);
    sheet1 = wwb.createSheet("result", 0);
    Label l = new Label(1,7,"a[0]");sheet1.addCell(l);
    Label l1 = new Label(1,7,"a[1]");sheet1.addCell(l1);
    Label l2 = new Label(1,7,"a[2]");sheet1.addCell(l2);
    Label l3 = new Label(1,7,"a[3]");sheet1.addCell(l3);
    Label l4 = new Label(1,7,"a[4]");sheet1.addCell(l4);
    Label l5 = new Label(1,7,"a[5]");sheet1.addCell(l5);
    Label l6 = new Label(1,7,"a[6]");sheet1.addCell(l6);

} 并在每个步骤调用此类: - ResulttoExcellabel(ResulttoExcellabelr); - 这应该将所有值传递给该方法然后应该写入excel表和 workbook.write在测试结束时执行。 请帮忙。 感谢。

2 个答案:

答案 0 :(得分:0)

我为此制定了解决方案 1)将所有结果添加到列表/字符串

2)对于字符串数组使用for循环(我的是二维说法,结果[x] [y]) 3)再次使用i和j循环使用excel中的cols和row并编写我的结果

答案 1 :(得分:0)

                for(y=9;y<arraynoofrows+9;y++)
                {
                    testcaseid=testcaseid+1;    
                    String testcaseid1 = String.valueOf(testcaseid);
                    col=0;
                    for(j=0;j<6;j++)
                    {
                        colnum=TestResultcolnumbers[col];
                        Label l = new Label(colnum,y,ar[y-9][j]);ws.addCell(l);
                        System.out.println("value of colnum"+colnum+" value of row number"+y+" value of i "+y+" value of j"+colnum+"value of ar[i][j] "+ar[y-9][j]);
                        col=col+1;
                        System.out.println(colnum);
                    }
                }