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]
