编写清单<arraylist <string>&gt;进入excel表

时间:2015-10-01 05:36:26

标签: java arraylist selenium-webdriver

我将提取字符串类型的数组列表中表格的所有td,一旦提取出所有td,并显示为

[[0, 14], [1, 1], [5, 6]]

现在,我想在一行中写入0,14,在另一行中写入1,1,依此类推。

我用来提取表的td的函数如下:

public List<ArrayList<String>> retrieveTableData(By locator){

    List<WebElement> rows = driver.findElements((locator));
    List<ArrayList<String>> rowsData = new ArrayList<ArrayList<String>>();

    for(WebElement row:rows){
        List<WebElement> rowElements = row.findElements(By.xpath(".//td"));

        ArrayList<String> rowData = new ArrayList<String>();

        for(WebElement column:rowElements){
            rowData.add(column.getText().toString());
        }

        rowsData.add(rowData);
    }
    System.out.println(rowsData);
    return rowsData;
}

有人可以告诉我是否有更简单的方法将此列表写入excel。

提前致谢!

2 个答案:

答案 0 :(得分:0)

循环播放列表,它将逐个打印元素。

for (String value : rowsData)
    System.out.println(value);

否则将arrayList转换为String数组,

String[] rowsArr =  rowsData.toArray((new String[rowsData.size()]));

for(String val : rowsArr)
    System.out.println(val);

答案 1 :(得分:0)

我会稍微改变一下。我将使用String的二维数组,以便您可以使用基本上(col,row)来指定每个单元格中保存的String。

public String[][] retrieveTableData(By locator)
{
    List<WebElement> rows = driver.findElements((locator));
    int rowCount = rows.size();
    int colCount = rows.get(0).findElements(By.xpath(".//td")).size(); // this assumes that all rows have the same number of cols
    String[][] tableData = new String[colCount][rowCount];

    for (int row = 0; row < rowCount; row++)
    {
        List<WebElement> cells = rows.get(row).findElements(By.xpath(".//td"));

        for (int column = 0; column < colCount; column++)
        {
            tableData[column][row] = cells.get(column).getText();
        }
    }

    return tableData;
}

此函数返回后,您可以将任何单元格指定为tableData [col] [row],这样可以更轻松地将数据写入Excel。

String[][] tableData = retrieveTableData(locator);
tableData[1][4]; // the cell contents of column 1, row 4