James,
I use the SS Usermodel instead of Excel version specific APIs. So opening a 
workbook is done with 

 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.WorkbookFactory;
 ...
 workbook = WorkbookFactory.create(fileInputStream);


See 
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/package-summary.html
 and
http://poi.apache.org/spreadsheet/converting.html

Paul Spencer

On Apr 14, 2010, at 11:25 AM, James Geroge wrote:

> 
> Hi Friends,
> I was trying to read .xls and .xlsx into one java class file and able to do
> it :jumping:, hope it will be useful to somebody.
> Jar Files Used
> http://old.nabble.com/file/p28244172/JarsUsed.jpg 
> Java Source Code as attachment: 
> http://old.nabble.com/file/p28244172/Test.java Test.java 
> //....................................
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.util.Iterator;
> 
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> import org.apache.poi.poifs.filesystem.POIFSFileSystem;
> import org.apache.poi.ss.usermodel.Cell;
> import org.apache.poi.ss.usermodel.DateUtil;
> import org.apache.poi.ss.usermodel.Row;
> import org.apache.poi.ss.usermodel.Sheet;
> import org.apache.poi.ss.usermodel.Workbook;
> import org.apache.poi.xssf.usermodel.XSSFWorkbook;
> 
> public class Test {
> public static void main(String[] args) throws IOException {
>     String fname = "C:\\Test.xlsx"; // or  "C:\\Test.xls" C:\\SDI-XL.xls
>     InputStream inp = new FileInputStream(fname);
>     String fileExtn = GetFileExtension(fname);
>     Workbook wb_xssf; //Declare XSSF WorkBook
>     Workbook wb_hssf; //Declare HSSF WorkBook
>     Sheet sheet = null; // sheet can be used as common for XSSF and HSSF
> WorkBook
>     if (fileExtn.equalsIgnoreCase("xlsx"))
>     {
>              wb_xssf = new XSSFWorkbook(inp);
>             log("xlsx="+wb_xssf.getSheetName(0));
>             sheet = wb_xssf.getSheetAt(0);
>     }
>     if (fileExtn.equalsIgnoreCase("xls"))
>     {
>         POIFSFileSystem fs = new POIFSFileSystem(inp);
>         wb_hssf = new HSSFWorkbook(fs);
>         log("xls="+wb_hssf.getSheetName(0));
>         sheet = wb_hssf.getSheetAt(0);
>     }
>     Iterator rows = sheet.rowIterator(); // Now we have rows ready from
> the sheet
>         while (rows.hasNext()) 
>             { 
>                  Row row = (Row) rows.next();
>                  log("row#="+row.getRowNum()+"");
>                  log("**********************");
>                 //log(row.getPhysicalNumberOfCells()+"");
>                 Iterator cells = row.cellIterator();
>                 while (cells.hasNext())
>                 {
>                     Cell cell = (Cell) cells.next();
>                         
>                         switch ( cell.getCellType() ) 
>                         {
>                         case Cell.CELL_TYPE_STRING:
>                             log(cell.getRichStringCellValue().getString());
>                         break;
>                         case Cell.CELL_TYPE_NUMERIC:
>                               if(DateUtil.isCellDateFormatted(cell)) {
>                                 log(cell.getDateCellValue()+"");
>                               } else {
>                                 
> System.out.println(cell.getNumericCellValue());
>                               }
>                               break;
>                         case Cell.CELL_TYPE_BOOLEAN:
>                               log(cell.getBooleanCellValue()+"");
>                               break;
>                             case Cell.CELL_TYPE_FORMULA:
>                               log(cell.getCellFormula());
>                               break;
>                         default:
>                         }
>                 }
>             }
>         inp.close();
> } 
> 
> private static void log(String message)
> {
>         System.out.println(message);
> }
> private static String GetFileExtension(String fname2)
> {
>     String fileName = fname2;
>     String fname="";
>     String ext="";
>     int mid= fileName.lastIndexOf(".");
>     fname=fileName.substring(0,mid);
>     ext=fileName.substring(mid+1,fileName.length());
>     return ext;
> }
> }
> //....................................
> 
> If anybody have suggestions, please respond.
> 
> Regards,
> James George.
> -- 
> View this message in context: 
> http://old.nabble.com/Finally-able-to-read-.xls-and-.xlsx-files%2C-hope-it-will-be-useful-to-somebody-tp28244172p28244172.html
> Sent from the POI - Dev mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to