2011-01-17 17 views
5

Hola quiero leer el archivo xlsx o el archivo xls, sea lo que sea. ¿XSSF es compatible con el archivo xls? ¿o necesito escribir el código por separado para ambos tipos de archivos?¿Cómo puedo leer archivos .xlsx y .xls en Java?

+1

posible duplicado de [Leer archivo xlsx en Java] (http://stackoverflow.com/questions/267025/read-xlsx-file-in-java) – dogbane

+0

@Srinivas has probado la biblioteca que he mencionado en la respuesta ? – noego

Respuesta

2

Si quiere que su código funcione para ambos, tendrá que usar el paquete org.apache.poi.ss. Este paquete ha sido creado para unificar XSSF y HSSF.

+0

gracias por la respuesta, sí quiero escribir un código que debería funcionar tanto para xlsx como para xls.can por favor dame el código de muestra – Srinivas

+0

org.apache.poi.ss funciona para ambos tipos de archivos muchas gracias – Srinivas

+1

@Srinivas: si su problema está resuelto, marque esta pregunta como respondida (la pequeña cosa verde que queda de mi respuesta) –

0

uso de este xls y xlsx

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(fileBean.getFileExt().equalsIgnoreCase("xls")){ 
    wb_hssf = new HSSFWorkbook(); 
    sheet = wb_hssf.getSheetAt(0); 
}else if (fileBean.getFileExt().equalsIgnoreCase("xlsx")){ 
    wb_xssf = new XSSFWorkbook(fileBean.getFileInput());  
    sheet = wb_xssf.getSheetAt(0);               
} 
+0

No es necesario para todo eso, solo use 'WorkbookFactory.createWorkbook (InputStream)' – EpicPandaForce

0

Para uno de mis proyectos que he creado una utilidad básica que utiliza Apache POI y OpenCSV y puede leer tanto archivos xlsx, xls y csv.

dado un convertidor que puede convertir filas de objetos, como este:

RowConverter<Country> converter = (row) -> new Country(row[0], row[1]); 

ExcelReader<Country> reader = ExcelReader.builder(Country.class) 
    .converter(converter) 
    .withHeader() 
    .csvDelimiter(';') 
    .sheets(1) 
    .build(); 

List<Country> list; 
list = reader.read("CountryCodes.xlsx"); 
list = reader.read("CountryCodes.xls"); 
list = reader.read("CountryCodes.csv"); 

Usted puede encontrar el proyecto de github.