Hello everyone, Need help using POI to access xslx data
749318Jan 26 2010 — edited Jan 27 2010Hi,
i am trying to make a simple program in OATS which will fetch data and display the output from a xlsx file.
The file name is DriverAdapter and its java script is as below. I have written a java class called ActionDriver whch performs the actions for me using the POI api. But when i instantiate ActionDriver,
it is throwing the exception referrring to POI api classes cannot be found. ClassNotFoundException : org.apache.poi.openxml4j.exceptions.InvalidOperationException;
Can someone help me out to find how can i run this through DriverAdapter. When i tried to run ActionDriver from the same project as a java application by replacing my method with main, it is running fine.
import oracle.oats.scripting.modules.basic.api.*;
import oracle.oats.scripting.modules.browser.api.*;
import oracle.oats.scripting.modules.functionalTest.api.*;
import oracle.oats.scripting.modules.utilities.api.*;
import oracle.oats.scripting.modules.utilities.api.sql.*;
import oracle.oats.scripting.modules.utilities.api.xml.*;
import oracle.oats.scripting.modules.utilities.api.file.*;
import oracle.oats.scripting.modules.webdom.api.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import ats.test.ActionDriver;
public class script extends IteratingVUserScript {
@ScriptService oracle.oats.scripting.modules.utilities.api.UtilitiesService utilities;
@ScriptService oracle.oats.scripting.modules.browser.api.BrowserService browser;
@ScriptService oracle.oats.scripting.modules.functionalTest.api.FunctionalTestService ft;
@ScriptService oracle.oats.scripting.modules.webdom.api.WebDomService web;
@ScriptService oracle.oats.scripting.modules.formsFT.api.FormsService forms;
private static String myData="C:/data.xlsx";
public void initialize() throws Exception {
//initializing ActionDriver
dAction = new ActionDriver();
}
/**
* Add code to be executed each iteration for this virtual user.
*/
public void run() throws Exception{
dAction.startAction(myData);
}
public void finish() throws Exception {
}
}
Below is the code for my ActionDriver
package ats.test;
//package sni.test.ats;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.openxml4j.exceptions.InvalidOperationException;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ActionDriver
{
public static void main (String ar[])
//public void startAction(String myData)
{
boolean b = true;
try
{
XSSFWorkbook wb = new XSSFWorkbook("c:/data.xlsx");
//XSSFWorkbook wb = new XSSFWorkbook(myData);
XSSFSheet sheet = wb.getSheet(DataConstants.businessFlow);
ArrayList businessRule = new ArrayList();
Iterator rows = sheet.rowIterator();
String myScripts[];
while (rows.hasNext())
{
XSSFRow row = (XSSFRow) rows.next();
row = (XSSFRow) rows.next();
Iterator cells = row.cellIterator();
while (cells.hasNext())
{
XSSFCell cell = (XSSFCell) cells.next();
if (cell.getCellType()==XSSFCell.CELL_TYPE_NUMERIC )
{
businessRule.add(cell.getNumericCellValue());
}
else
{
businessRule.add(cell.getStringCellValue());
}
}
}
performAction(businessRule);
}
catch(Exception fife)
{
System.out.println("Exception Occured"+fife);
b=false;
}
/*catch(IOException ie)
{
System.out.println("Error Handling Input File"+ie);
}*/
}
public static void performAction(ArrayList businessRules)
{
Object[] businessRuleArray = businessRules.toArray();
boolean b=true;
for (int i=1; i<businessRuleArray.length;i++)
{
if(b)
{
String rule = businessRuleArray.toString();
System.out.println(rule);
}
else
{
break;
}
}
}
}