在地图中放入不同的值,并使用selenium使用POI写入Excel

时间:2016-12-15 09:31:44

标签: java selenium apache-poi

我想在地图中放入不同的值,并使用POI库将它们写入excel文件中。我有两个问题,如果有人可以回答它们会很棒

1)我想在地图的不同阶段放置不同的值,并将它们写在excel的不同列中。例如。在第1页,我有一个值A,我想放在地图中,在第2页,我有一个值B和C,我想把它放入地图。我想在excel的不同列中写下这些值。

2)我可能再次访问第1页和第2页,那时我希望将这些值A和B写入新的ROW中。如何每次增加行并在新行中写入这些值,我再次访问第1页和第2页。

我写了类似的东西,

    Map<String, Object[]> putdatainMap;
String orderid=driver.findElement(By.id("ORDER_ID")).getAttribute("value");
        putdatainMap.put(orderid, ?)//This I get from page1

String txnid=driver.findElement(By.name("TXN_ID").getAttribute("value");
       putdatainMap.put(txnid,?)//I don't want to lose the orderid which I got earlier, rather I want to put the orderid and txnid in different columns)

String status=driver.findElement(By.id("status").getAttribute("value");
       putdatainMap.put(status,?)//The txn id and status I get from page2

现在我想在excel文件中编写上述值并执行某些操作,当我重新启动此流时,新值应该出现在新行中。

Set <String> keyset = putdatainMap.keySet();
        int rownum = 0;
        for (String key : keyset)
        {
            Row row = sheet.createRow(rownum++);
            Object [] objArr = data.get(key);
            int cellnum = 0;
            for (Object obj : objArr)
            {
               Cell cell = row.createCell(cellnum++);
               if(obj instanceof String)
                    cell.setCellValue((String)obj);
                else if(obj instanceof Integer)
                    cell.setCellValue((Integer)obj);
            }
        }
        try
        {
            FileOutputStream out = new FileOutputStream(new File(filepath +"/"+filename+".xlsx"));
            workbook.write(out);
            out.close();
            System.out.println("Data written to drive sucessfully");
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }

    }

0 个答案:

没有答案