我能够将自动数据写入excel文件。但是,我需要有关如何读取其中带有名称列表的excel模板的帮助,其中每个名称执行相应的方法,然后在该行中将其值写入行。
例如,这是模板:
Excel模板:
此外,这是与excel文件中的数据相对应的方法:
public void AbbeyNational(String AbbeyNationalURL, String AN_AccCookiesButton, String AN_MortgageTabButton, String AN_ExistingCustomerButton, String AN_FollowRateButton, String AN_SVRButton, String AN_RateFld) throws InterruptedException, IOException{
driver.get(AbbeyNationalURL);
driver.findElement(By.xpath(AN_AccCookiesButton)).click();
driver.findElement(By.linkText(AN_MortgageTabButton)).click();
driver.findElement(By.xpath(AN_ExistingCustomerButton)).click();
driver.findElement(By.xpath(AN_FollowRateButton)).click();
driver.findElement(By.xpath(AN_SVRButton)).click();
String a = driver.findElement(By.cssSelector(AN_RateFld)).getText();
AN_Rate = a.substring(54,58);
T1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(Calendar.getInstance().getTime());
data.put("2", new Object[]{"Abbey National", AN_Rate, T1});
System.out.println(AN_Rate);
TakesScreenshot scrShot = (TakesScreenshot)driver;
File srcfile = scrShot.getScreenshotAs(OutputType.FILE);
File DestFile = new File("C:\\Users\\harpreet dugh\\Desktop\\Screenshots\\AbbeyNational.png");
FileUtils.copyFile(srcfile, DestFile);
}
最后,这是所需的输出:
所需的输出:
为了澄清,从输出中可以看出,我想从excel文件中读取贷方“ Abbey National”,执行相应的方法,并将利率和时间写入excel文件中的该贷方。
有人可以帮我吗?
答案 0 :(得分:0)
我建议使用Apache POI库在excel中执行读写操作。
对于.xls扩展名文件,您需要HSSF;对于.xlsx文件的扩展名,您需要XSSF。
我已经给出了示例ExcelDataConfig文件。请创建一个单独的类作为ExcelDataConfig。
您可以通过创建ExcelDataConfig对象来简单地调用所需的方法。
要阅读和编写代码:
ExcelDataConfig config=new ExcelDataConfig(Excel Path);
//Arguments - Sheet Index, Row Number , column Number(All the index starts from 0.So, give the no of is correctly
config.getData(0,1,1)
// To write the Rate Details in Excel
config.writeData(0,1,2);
// To write the Time Details in Excel
config.writeData(0,1,3);
ExcelDataConfig类:
public class ExcelDataConfig {
HSSFWorkbook wb;
HSSFSheet sheet;
File src;
public ExcelDataConfig(String excelPath)
{
src=new File(excelPath);
try {
FileInputStream fis=new FileInputStream(src);
wb=new HSSFWorkbook(fis);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getData(int sheetIndex,int row,int column){
sheet=wb.getSheetAt(sheetIndex);
String data="";//sheet.getRow(row).getCell(column).getStringCellValue();
Row r=sheet.getRow(row);
Cell c=r.getCell(column, Row.RETURN_BLANK_AS_NULL);
if(c==null){
data="";
}
else{
if(r.getCell(column).getCellType()==HSSFCell.CELL_TYPE_STRING){
data=r.getCell(column).getStringCellValue();
}else if (r.getCell(column).getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
int intData=(int) r.getCell(column).getNumericCellValue();
data=Integer.toString(intData);
}
}
return data;
}
public void writeData(int sheetIndex,int row,int column,String content,String excelPath ) throws IOException{
sheet=wb.getSheetAt(sheetIndex);
sheet.getRow(row).getCell(column).setCellValue(content);
FileOutputStream fout=new FileOutputStream(src);
wb.write(fout);
//wb.close();
}
}