如何一次从excel文件中读取一行数据

Posted

技术标签:

【中文标题】如何一次从excel文件中读取一行数据【英文标题】:How to read data from excel file one line at a time 【发布时间】:2014-09-21 20:20:26 【问题描述】:

我希望我的程序从 excel 文件中读取一行(将包含一个 URL)。转到该 URL 并阅读下一行 --> 转到该 URL 直到读取整个文件。

import java.io.*;
import java.util.concurrent.TimeUnit;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class readDataFromExcelFile

 public static void main(String[] args)  

        WebDriver driver = new FirefoxDriver();

        driver.get("http://www.google.com");

        driver.manage().window().maximize();  

        WebElement searchbox = driver.findElement(By.name("q"));

 try 

  FileInputStream file = new FileInputStream(new File("E://TestData.xlsx")); 
  XSSFWorkbook workbook = new XSSFWorkbook(file);

  XSSFSheet sheet = workbook.getSheetAt(0);

for (int i=1; i <= sheet.getLastRowNum(); i++)

        String keyword = sheet.getRow(i).getCell(0).getStringCellValue();

        searchbox.sendKeys(keyword);

        searchbox.submit();       

        driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);



  file.close();

  catch (FileNotFoundException fnfe) 
  fnfe.printStackTrace();
  catch (IOException ioe) 
  ioe.printStackTrace();
 
 

但是上面的程序会一次性获取所有的/url。你能告诉我我应该在代码中修改什么吗?

【问题讨论】:

代码看起来正确。请更具体地说明“一次所有网址”的含义。它是否搜索url1url2url3?还是在搜索之间根本没有等待? 你好,它接受为 url1url2url3 最终它不会是一个有效的 url 【参考方案1】:

在输入更多文本之前清除该字段。

sendKeys() 就像它所说的那样:它向浏览器发送一系列“用户按下的键 X”。因此,如果该字段已包含内容,则附加新键。

见:Clear text from textarea with selenium

【讨论】:

以上是关于如何一次从excel文件中读取一行数据的主要内容,如果未能解决你的问题,请参考以下文章

使用POI读取EXCEL中的数据如何获得表中实际数据的行数?

python如何向表格中添加数据,不覆盖原有数据?

如何使用openpyxl删除excel中的第一行

Java读取Excel中数据时怎么判断Excel中的最后一行

如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取

MATLAB中读取excel数据