0

在下面的代码中,我想在两个不同的单元格中传递两个数据。(单元格 1 和单元格 2)。但它只显示单元格 1 的数据。有人请帮忙。

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();
    }
   }}

我试过 Label i = new Label(a, b, text); sheet.addCell(i); 标签 P = new Label(a, b, text); sheet.addCell(p); 但没有运气

4

2 回答 2

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();
    }
}

(顺便说一句,这不是硒问题)。

于 2013-10-29T00:03:12.603 回答
0

使用 selenium webdriver 将结果写入现有 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) {

        }
    }
于 2013-12-10T05:44:24.860 回答