将多个数据写入Excel文件

时间:2018-09-13 21:25:33

标签: java selenium selenium-webdriver cucumber

我有一个网络元素列表,我需要将列表中的每个元素写到Excel中的单独单元格中。当前,例如当我在列表中有2个元素时,第二个元素将删除单元格中的第一个元素。

    List<WebElement> products = driver.findElements(By.xpath("//label[contains(text(),'Size')]"));
    for (WebElement product:products){
        SetCellData(product.getText(),1,0);

1 个答案:

答案 0 :(得分:1)

所以这取决于您想要数据的方式。
我猜您正在使用Apache Poi。或类似的东西
您的循环不会在工作簿中移动,而只会写入相同的单元格
这是我从教程中提取的一个示例

 //This data needs to be written (Object[])
    Map< String, Object[] > empinfo =
            new TreeMap<>();
    empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
    empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
    empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
    empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
    empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
    empinfo.put( "6", new Object[] { "tp05", "Krishna", "6546984651685465132198651324984351" });

    //Iterate over data and write to sheet
    Set< String > keyid = empinfo.keySet();
    int rowid = 0;

    for (String key : keyid) {
        row = spreadsheet.createRow(rowid++);
        Object [] objectArr = empinfo.get(key);
        int cellid = 0;

        for (Object obj : objectArr) {
            Cell cell = row.createCell(cellid++);
            cell.setCellValue((String)obj);
        }
    }

因此,如果您希望每个元素都位于1行中。您将Cell cellToFill = row.createCell(nextCellColNumber)

如果您想要一个垂直列表,将在行创建单元格(0)并在那里设置值