2013-10-28 40 views
0

在下面的代码中,我想要在两个不同的单元格中传递两个数据。 (单元格1和单元格2)。但它仅显示单元格1的数据。有人请帮助。使用硒webdriver在不同的Excel单元格中写入多个数据

import java.io.FileOutputStream; 
import java.util.concurrent.TimeUnit; 

import jxl.Workbook; 
import jxl.write.Label; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
public class xl { 
private WebDriver driver; 
@Before 
public void setUp() throws Exception { 
driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
} 

@Test 
public void test() throws Exception { 
driver.get("http://www.google.com/"); 
String s = driver.getTitle(); 
writereport(0,0,s); 
writereport(1,1,"Valid"); 
} 

@After 
public void tearDown() throws Exception { 
driver.quit(); 
} 



public void writereport(int a,int b,String text) 
    { 
    try 
    { 
    FileOutputStream f = new FileOutputStream("C:\\DEMO.xls",true); 
    WritableWorkbook book = Workbook.createWorkbook(f); 
    WritableSheet sheet = book.createSheet("TESTRESULTS",0); 
    Label i = new Label(a, b, text); 
    sheet.addCell(i); 
    book.write(); 
    book.close(); 
    } 
    catch (Exception e) 
    { 
    e.printStackTrace(); 
    } 
    }} 

我试图 标签I =新标签(A,B,文本); sheet.addCell(i); 标签P =新标签(a,b,文本); sheet.addCell(p); 但是没有运气

回答

0

将结果写入使用硒驱动器的现有Excel表格中。在您的代码方法中使用此方法。 像

writeresultinexcel(3, i, "Pass"); 

writeresultinexcel(3, i, "Fail"); 



public void writeresultinexcel(int row, int col, String result) throws Exception{ 

try { 

File fl = new File("excelpath"); 

WritableWorkbook wwb; 

WritableSheet wsht; 

Workbook existingbook=null; 

if(!fl.exists()){ 

wwb=Workbook.createWorkbook(fl); 

wsht=wwb.getSheet("excelpath"); 

} 

else { 

existingbook=Workbook.getWorkbook(fl); 

wwb=Workbook.createWorkbook(fl,existingbook); 

wsht=wwb.getSheet(0); 

} 

Label lbl=new Label(row, col, result); 

wsht.addCell(lbl); 

wwb.write(); 

wwb.close(); 

if(existingbook!=null){ 

existingbook.close(); 

} 

} 

catch (Exception e) { 

     } 
    } 
+0

希望这代码帮你做的更好代码much.Its。 –

1

第二次调用writereport时,您试图创建一个已经存在的工作簿。这失败了。

要使用jxl写入现有工作簿,您需要首先制作该工作簿的副本。

public void writereport(int a, int b, String text) { 
    try { 
     File excelFile = new File("D:\\DEMO.xls"); 

     WritableWorkbook book; 
     WritableSheet sheet; 
     Workbook existingBook = null; 

     if (!excelFile.exists()) { 
      book = Workbook.createWorkbook(excelFile); 
      sheet = book.createSheet("TESTRESULTS", 0); 
     } else { 
      existingBook = Workbook.getWorkbook(excelFile); 
      book = Workbook.createWorkbook(excelFile, existingBook); 
      sheet = book.getSheet("TESTRESULTS"); 
     } 

     Label i = new Label(a, b, text); 
     sheet.addCell(i); 
     book.write(); 
     book.close(); 

     if (existingBook != null) 
      existingBook.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

(这不是硒的问题)。

+0

谢谢你O工作:) – user2410266

相关问题