簡體   English   中英

從webtable中獲取值並在循環中的每一行中一一寫入excel表中

[英]Fetching value from webtable and write in excel sheet one by one of each row in a loop

1)我試圖從應用程序的網絡表中讀取值並將其一一寫入excel表中。

2) webtable 的每一行有 4 個值需要寫入 Excel 工作表,但每行中有一些圖像我使用下面的代碼忽略了 bu。

 text.length()>2
.

3)webtable 中會有 200-300 行需要提取並寫入 Excel 表格。

這是我試過的代碼。 但我不知道如何將其一一寫入excel表的每一行。 請在這方面幫助我。

 //get the table WebElement statusTable = browser.findElement(By.id("projectstatus")); //Get all the rows in the table List<WebElement> allRows = statusTable.findElements(By.tagName("tr")); //Get the size(row no) of allRows int rowSize = allRows.size(); System.out.println(rowSize); for (WebElement row : allRows) { //Get all cell values in each row List<WebElement> allCells = row.findElements(By.tagName("td")); //System.out.println(allCells.size()); if(allCells.size() > 1){ for (WebElement cell : allCells) { String text = cell.getText(); if(text.length()>2){ String value = cell.getText(); } } } // locate the test xl file File file = new File("e:\\\\Testing_emi.xls"); // create input stream FileInputStream fis = new FileInputStream(file); // create workbook HSSFWorkbook wb = new HSSFWorkbook(fis); // get sheet HSSFSheet sheet1 = wb.getSheet("Sheet1"); // get rows HSSFRow row = sheet1.getRow(1); HSSFCell cellEx = row.getCell(0); if (cellEx == null) { cellEx = row.createCell(0); } cellEx.setCellValue(value);

//get the table
    WebElement statusTable = browser.findElement(By.id("projectstatus"));

    //Get all the rows in the table
    List<WebElement> allRows = statusTable.findElements(By.tagName("tr"));

    //Get the size(row no) of allRows
    int rowSize = allRows.size();
    System.out.println(rowSize);


    // locate the test xls file             
  File file = new File("e:\\Testing_emi.xls");              
  // create input stream                
  FileInputStream fis = new FileInputStream(file);              
  // create workbook                
  HSSFWorkbook wb = new HSSFWorkbook(fis);              
  // get sheet              
  HSSFSheet sheet1 = wb.getSheet("Sheet1");             
  // get rows               


   HSSFRow row;             

    for (int i=0; i<rowSize; i++) 
    {
        WebElement webRow = allRows.get(i);
        //Get all cell values in each row
        List<WebElement> allCells = webRow.findElements(By.tagName("td"));
        //System.out.println(allCells.size());

        if(allCells.size() > 1)
        {
            HSSFRow excelRow = sheet1.createRow(i);

            for (int j=0; j<allCells.size(); j++) 
            {
                WebElement webCell = allCells.get(j);
                String text = webCell.getText();
                if(text.length()>2)
                {
                    Cell excelCell = excelRow.createCell();
                    excelCell.setValue(webCell.getText());
                }                   
            }
        }
    }

  sheet1.close();

從應用程序的Web Table 中讀取值並逐個寫入Excel 表格中。Web Table 每行有5 個值需要寫入Excel 表格。 下面是工作代碼。

System.setProperty("webdriver.chrome.driver","C:\\Users\\Documents\\Selenium jars\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://cosmocode.io/automation-practice-webtable/");
        WebElement table = driver.findElement(By.xpath("//*[@id='countries']/tbody"));
        List<WebElement> rows = table.findElements(By.tagName("tr"));
        int rowcount = rows.size();
        FileOutputStream fis = new FileOutputStream(new File("C:\\Users\\Documents\\Selenium\\output.xlsx"));
        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet sh = wb.createSheet("First Sheet");
        for (int row = 0; row < rowcount; row++) {
            List<WebElement> columns_inrow = rows.get(row).findElements(By.tagName("td"));
            int columns_count = columns_inrow.size();
            System.out.println("Number of cells in Row " + row + " are " + columns_count);
            Row ro = sh.createRow(row);
            for (int column = 0; column < columns_count; column++) {

                String celltext = columns_inrow.get(column).getText();
                System.out.println(
                        "Cell Value of row number " + row + " and column number " + column + " Is " + celltext);
                ro.createCell(column).setCellValue(celltext);
            }
            System.out.println("===========================");

        }
        wb.write(fis);
        wb.close();

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM