Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将web表数据写入excel_Java_Selenium Webdriver - Fatal编程技术网

Java 将web表数据写入excel

Java 将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

我在web表中有将近1500行,我想将所有行数据写入excel


我使用的是
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;iSystem.out.println(“您的excel文件已经生成!”);
当您到达
for
时,
irowscont
的值是多少?“程序已停止,没有任何错误”,因此首先您必须处理捕获到的异常,例如打印它。是的,我更改了for循环(int i=500,Row=0;i