我想读取一个 excel 并一次获取 10 条记录,并使用 selenium Web 驱动程序和 testNG 中的数据提供程序将它们连接起来。例如,Excel 工作表有两列,即 col 1、col 2 和 10 行。现在,我想使用 selenium web-driver 即“A,B,C,D,E,F,G,H,J,I”作为值,将从 excel 中获取的结果作为值传递到文本框中。在这里, row1 col1 包含 "A" 和 row 1 col 2 包含 "," 。同样,其余的行和列也是如此。你能提供我这个逻辑的代码吗?
问问题
6113 次
2 回答
1
使用 JDBC 驱动连接到 excel 文件,并通过 SQL 将其用作数据库:
于 2015-01-18T12:32:17.790 回答
0
read and write data from excel
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader {
public FileInputStream fis = null;
public FileOutputStream fout = null;
private XSSFWorkbook workbook = null;
private XSSFSheet sheet = null;
private XSSFRow row = null;
private XSSFCell cell = null;
String path = null;
public ExcelReader() throws IOException {
path = System.getProperty("user.dir") + "\\testdata\\testdata.xlsx";
fis = new FileInputStream(path);//FileInputStream is used to read excel.
workbook = new XSSFWorkbook(fis);//workbook is excel file include multiple sheet
sheet = workbook.getSheetAt(0);//focusing on particular sheet in workbook.
}
//get number of rows in selected sheet.
public int getSheetRows(String sheetName) {
int index = workbook.getSheetIndex(sheetName);
workbook.getSheetAt(index);
return (sheet.getLastRowNum() + 1);
}
//get number of columns in selected sheet
public int getSheetColumn(String sheetName) {
int index = workbook.getSheetIndex(sheetName);
workbook.getSheetAt(index);
row = sheet.getRow(0);
return (row.getLastCellNum());
}
//get the values in cell by using sheet name and row number and column number
public String getCellData(String sheetName, int rowNum, int colNum) {
int index = workbook.getSheetIndex(sheetName);
sheet = workbook.getSheetAt(index);
row = sheet.getRow(rowNum);
cell = row.getCell(colNum);
return (cell.getStringCellValue());
}
//get the values form cell by using the sheetname and row number and column name
public String getCellData(String sheetName, int rowNum, String ColName) {
int CellNum = -1;
int index = workbook.getSheetIndex(sheetName);
sheet = workbook.getSheetAt(index);
for (int i = 0; i < getSheetColumn(sheetName); i++) {
row = sheet.getRow(0);
cell = row.getCell(i);
if (cell.getStringCellValue().equals(ColName)) {
CellNum = cell.getColumnIndex();
break;
}
}
row = sheet.getRow(rowNum);
cell = row.getCell(CellNum);
return (cell.getStringCellValue());
}
//write the data into sheet.
public void setData(String sheetName, int ColNum, int rowNum, String str) {
int index = workbook.getSheetIndex(sheetName);
sheet = workbook.getSheetAt(index);
row = sheet.getRow(rowNum);
cell = row.createCell(ColNum);
cell.setCellValue(str);
try {
fout = new FileOutputStream(path);
try {
workbook.write(fout);
fout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
ExcelReader reader = new ExcelReader();
System.out.println(reader.getSheetRows("LoginTest"));
System.out.println(reader.getSheetColumn("LoginTest"));
System.out.println(reader.getSheetRows("SignUPTest"));
System.out.println(reader.getSheetColumn("SignUpTest"));
System.out.println(reader.getCellData("LoginTest", 1, 0));
System.out.println(reader.getCellData("LoginTest", 2, "password"));
reader.setData("LoginTest", 1, 1, "Hello");
}
}
于 2017-04-25T07:16:09.183 回答