如何一次从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中的数据如何获得表中实际数据的行数?
Java读取Excel中数据时怎么判断Excel中的最后一行