Before using this code ,you need import following jars.
1.Import JXL jar file...
2.mport jxl.write.Label and use Label l = new Label(0, 0, text);
Reading and writing data in excel sheet is quite easy. Here is the simple example to read and write data using selenium web driver 2.0. Import jxl jar file and then run the script
Reading data from excel:
public String[][] getXLData(String location, String sheetname)
{
Workbook w = null;
try {
w = Workbook.getWorkbook(new File(location));
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Sheet s = w.getSheet(sheetname);
String a[][] = new String[10][10];
try
{
for (int j=0;j<s.getColumns();j++)
{
for (int i=0;i<s.getRows();i++)
{
a[j][i] = s.getCell(j, i).getContents();
System.out.println(j+" and "+i+" "+a[j][i]);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
return a;
}
Writing data to excel:
A simple example to write the title of the page in the excel sheet
public class google {
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.co.in/");
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys("Testing");
driver.findElement(By.id("gbqfq")).sendKeys(Keys.ENTER);
driver.findElement(By.linkText("Software testing - Wikipedia, the free encyclopedia")).click();
String s = driver.getTitle();
writereport(s);
}
@After
public void tearDown() throws Exception {
driver.quit();
}
public void writereport(String text)
{
try
{
FileOutputStream f = new FileOutputStream("c:\\Test\\output.xls",true);
WritableWorkbook book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("output", 0);
Label l = new Label(0, 0, text);
sheet.addCell(l);
book.write();
book.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
Reading data from excel:
public String[][] getXLData(String location, String sheetname)
{
Workbook w = null;
try {
w = Workbook.getWorkbook(new File(location));
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Sheet s = w.getSheet(sheetname);
String a[][] = new String[10][10];
try
{
for (int j=0;j<s.getColumns();j++)
{
for (int i=0;i<s.getRows();i++)
{
a[j][i] = s.getCell(j, i).getContents();
System.out.println(j+" and "+i+" "+a[j][i]);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
return a;
}
Writing data to excel:
A simple example to write the title of the page in the excel sheet
public class google {
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.co.in/");
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys("Testing");
driver.findElement(By.id("gbqfq")).sendKeys(Keys.ENTER);
driver.findElement(By.linkText("Software testing - Wikipedia, the free encyclopedia")).click();
String s = driver.getTitle();
writereport(s);
}
@After
public void tearDown() throws Exception {
driver.quit();
}
public void writereport(String text)
{
try
{
FileOutputStream f = new FileOutputStream("c:\\Test\\output.xls",true);
WritableWorkbook book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("output", 0);
Label l = new Label(0, 0, text);
sheet.addCell(l);
book.write();
book.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
Hi,
ReplyDeleteI am getting error for writing to excel by using this code
C:\Users\TEMP\AppData\Local\Temp\testng-eclipse-984789193\testng-customsuite.xml
FAILED: test
java.lang.NullPointerException
at pack12.Writing2Excel$google.test(Writing2Excel.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:128)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1203)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1128)
at org.testng.TestNG.run(TestNG.java:1036)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Hi Gouthami,
ReplyDeleteHave You Downloaded jxl jar file.............If that jar file not available in your build path,just download and Configure.
This Code is working Fine.
package learing;
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 Excel {
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.co.in/");
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys("Testing");
driver.findElement(By.id("gbqfq")).sendKeys(Keys.ENTER);
driver.findElement(By.linkText("Software testing - Wikipedia, the free encyclopedia")).click();
String s = driver.getTitle();
System.out.println(s);
writereport(s);
}
@After
public void tearDown() throws Exception {
driver.quit();
}
public void writereport(String text)
{
try
{
System.out.println("Hello");
FileOutputStream f = new FileOutputStream("D:\\output.xls",true);
WritableWorkbook book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("output", 0);
System.out.println("Hello11");
Label l = new Label(0, 0, text);
sheet.addCell(l);
book.write();
book.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Label l = new Label(row, col, text); is showing an error in my ecllipse project...plz reply
ReplyDeleteMay be you have used awt.Label. I received the same error when i used it. Then I changed the declaration to jxl.write.Label. The script nothing gave me any error after that. but my excel didn't show me the page title.
DeleteHi Ankit,
ReplyDeleteCan You Post That Error Message......
cheers,
Brahmi
Thanks for Sharing.. Able to Write into excel without any Flaws :)
ReplyDeleteHi ,
ReplyDeleteCan you please tell me howto write and read the data from the Excel , in One TestNG program
Hi
ReplyDeleteThe script is running fine for testNG but it is not creating any worksheet on specified path.Please reply.
I was searching for java code to write data to existing excel files and found java library for excel which allows you to perform all excel tasks without having to install MS excel in your system. I found this library very useful as i can read and write data to/from excel file using this library. You should try it also.
ReplyDeleteHi
ReplyDeletescript is executed but output is not generated , is there any issue with
import jxl.write.Label;
Hi Sagar ,
DeleteThis Script has no Problem....if you are facing any problem please paste it here
Hi,
ReplyDeleteI am getting below problem.
jxl.read.biff.BiffException: Unable to recognize OLE stream
Hi sandhya,
ReplyDelete"save as" your workbook as "Excel 97-2003 workbook" (option comes in Microsoft Excel 2007) it saves your file in OLE container.
Cheers,
Brahmi
Hi,
ReplyDeleteThis code is run fine without any error for the TestNG but not provide any o/p
But work fine for the Core Java as
package mypackage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class wriExl {
public static void main(String args[]) throws IOException, RowsExceededException, WriteException
{
System.out.println("Hello");
FileOutputStream f = new FileOutputStream("D:\\output.xls",true);
WritableWorkbook book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("output", 0);
System.out.println("Hello11");
Label l = new Label(0, 0, "sfsdfsdfsdfsdf");
sheet.addCell(l);
book.write();
book.close();
}
}
HI , can you please share the code in which it is explained, how to integrate the above code with testNG class program.I would be really apreciatiate if somebody response on this asap.
ReplyDeletehi, I am getting error for above code
ReplyDeleteString excelpath = "/home/....../testdata.xlsx";
FileInputStream fis = new FileInputStream(excelpath);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(2);
String value = "PASS";
Cell cellresult;
cellresult = row.getCell(14);
cellresult.setCellValue(value);
FileOutputStream fos=new FileOutputStream(excelpath);
workbook.write(fos);
fos.flush();
fos.close();
getting error for setCellValue(); line
Hi i used the same code u have given first i am reading data from ecel into my application then i am writing data into a copy of the excel for first iteration it works fine but later on test script fails and its throws java,lang,nullpointer Exception could you pls help me with this?
ReplyDelete