Java 将web表数据写入excel
我在web表中有将近1500行,我想将所有行数据写入excelJava 将web表数据写入excel,java,selenium-webdriver,Java,Selenium Webdriver,我在web表中有将近1500行,我想将所有行数据写入excel 我使用的是seleniumwebdriver,Java。问题是程序在写了将近300行之后停止了,没有任何错误 请帮助我,如何将所有数据写入excel。如果我给出thraed.sleep(5000)需要更多的时间 我使用了下面提到的代码: List<WebElement> irows = a2.findElements(By.xpath("//*[@id='filter_result']/table/tbody/t
我使用的是
seleniumwebdriver,Java
。问题是程序在写了将近300行之后停止了,没有任何错误请帮助我,如何将所有数据写入excel。如果我给出
thraed.sleep(5000)代码>需要更多的时间
我使用了下面提到的代码:
List<WebElement> irows = a2.findElements(By.xpath("//*[@id='filter_result']/table/tbody/tr/td[2]/a[1]"));
int iRowsCount = irows.size();
System.out.println(iRowsCount);
FileOutputStream fos = new FileOutputStream("E:\\jega\\testw3.xlsx");
XSSFWorkbook wkb = new XSSFWorkbook();
XSSFSheet sheet1 = wkb.createSheet("DataStorage");
String a3=null;
for (int i=500,Row=0;i<=iRowsCount;i++) {
try
{
WebElement val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[2]"));
// WebElement val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td["+j+"]"));
String a = val.getText();
if( a.length() != 0 )
{
a3=a;
//int length = val.length();
System.out.print(a3 + '\n');
XSSFRow excelRow = sheet1.createRow(Row++);
XSSFCell excelCell = excelRow.createCell(0);
excelCell.setCellType(XSSFCell.CELL_TYPE_STRING);
excelCell.setCellValue(a3);
for ( int j=5;j<12;j++)
{ switch (j)
{
case 5:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[5]"));excelCell = excelRow.createCell(1);
excelCell.setCellValue(val.getText()); break;
case 8:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[8]"));excelCell = excelRow.createCell(2);
excelCell.setCellValue(val.getText());break;
case 9:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[9]"));excelCell = excelRow.createCell(3);
excelCell.setCellValue(val.getText());break;
case 11:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[11]"));excelCell = excelRow.createCell(4);
excelCell.setCellValue(val.getText());break;
}
}
Thread.sleep(5000);
}
else
{
System.out.print(a3 + '\n');
XSSFRow excelRow = sheet1.createRow(Row++);
XSSFCell excelCell = excelRow.createCell(0);
excelCell.setCellType(XSSFCell.CELL_TYPE_STRING);
excelCell.setCellValue(a3);
for ( int j=5;j<12;j++)
{ switch (j)
{
case 5:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[5]"));excelCell = excelRow.createCell(1);
excelCell.setCellValue(val.getText()); break;
case 8:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[8]"));excelCell = excelRow.createCell(2);
excelCell.setCellValue(val.getText());break;
case 9:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[9]"));excelCell = excelRow.createCell(3);
excelCell.setCellValue(val.getText());break;
case 11:val= a2.findElement(By.xpath("//*[@id='filter_result']/table/tbody/tr["+i+"]/td[11]"));excelCell = excelRow.createCell(4);
excelCell.setCellValue(val.getText());break;
}
}
Thread.sleep(5000);
}
}//tryc
catch (NoSuchElementException e) {
}//cath
}//for
// System.out.println();
// Thread.sleep(6000);
fos.flush();
wkb.write(fos);
fos.close();
List irows=a2.findElements(By.xpath(“/*[@id='filter_result']]]/table/tbody/tr/td[2]/a[1]”);
int irowscont=irows.size();
系统输出打印项次(iRowsCount);
FileOutputStream fos=新的FileOutputStream(“E:\\jega\\testw3.xlsx”);
XSSFWorkbook wkb=新XSSFWorkbook();
XSSFSheet sheet1=wkb.createSheet(“数据存储”);
字符串a3=null;
对于(int i=500,Row=0;i我还将web表数据导出到excel工作表,如下所示,
这对我来说很好,希望对你有帮助
WebElement=driver.findElement(By.xpath(“/*[@id='entireBody']]/div[3]/div/table”);
List tbdy=element.findElements(按.tagName(“tbody”);
列出thed=element.findElements(按.tagName(“thead”);
睡眠(1000);
List tr=tbdy.get(0).findElements(按.tagName(“tr”));
List trh=thed.get(0).findElements(按.tagName(“tr”));
睡眠(1000);
试一试{
字符串文件名=路径;
HSSFWorkbook=新的HSSFWorkbook();
HSSFSheet sheet=workbook.createSheet(“第一张纸”);
CellStyle style=工作簿.createCellStyle();//创建样式
Font Font=工作簿.createFont();//创建字体
font.setBoldweight(font.BOLDWEIGHT_BOLD);//使字体加粗
style.setFont(font);//将其设置为粗体
HSSFRow行=sheet.createRow(0);
对于(int i=0;i System.out.println(“您的excel文件已经生成!”);
当您到达for
的时,irowscont
的值是多少?“程序已停止,没有任何错误”,因此首先您必须处理捕获到的异常,例如打印它。是的,我更改了for循环(int i=500,Row=0;i