2012-04-18 9 views
5

Necesito ayuda para leer archivos xls usando apache XSSF.Necesito ayuda para apache poi leyendo xls con XSSF

La implementación de XSSF funciona bien para "xlsx". No funciona para archivos "xls".

Aquí está el código:

XSSFWorkbook workBook = new XSSFWorkbook("fileName"); 
    XSSFSheet sheet = workBook.getSheetAt(0); 
    XSSFRow row = sheet.getRow(0); 

se aprecia Cualquier solución.

+0

¿Usted intentó leer el [Apache POI GuíaRápida] (http://poi.apache.org/ hoja de cálculo/how-to.html # user_api)? Le muestra cómo leer y escribir archivos XSSF y HSSF con el código básicamente idéntico – Gagravarr

+0

Gracias por su reproducción. Sí, puedo hacerlo separadamente para .xml HSSF y para .xlsx XSSF. Pero, ¿hay alguna forma de que podamos lograr ambas cosas con la implementación única? –

Respuesta

9

En lugar de usar directamente las clases XSSF, usted debe utilizar las interfaces que son comunes entre ambos HSSF (.xls) y XSSF (.xlsx). El fragmento de código de su pregunta sería entonces:

Workbook wb = WorkbookFactory.create(file); // Or InputStream 
Sheet sheet = workBook.getSheetAt(0); 
Row row = sheet.getRow(0); 
Cell cell = row.getCell(0); 
System.out.println("Cell A1 is of type " + cell.getCellType()); 

Véase el Apache POI QuickGuide para obtener más información y ejemplos

+0

esto no parece funcionar con xlsx. Cada vez que intento cargar un archivo de Excel en ese formato, aparece un extraño error de reflexión: java.lang.reflect.InvocationTargetException. Estoy almacenando mis filas que obtengo del archivo Excel en un vector, y luego paso ese vector a otra función. Cuando estoy dentro de esa función, el vector siempre está vacío con un archivo XLSX, pero tiene el valor correcto con los archivos XLS. – berto77

+0

Además, ese enlace no demonstarte xssf. Solo hssf. – berto77

+0

Sí, el código funciona de forma idéntica tanto para HSSF como para XSSF, solo depende del tipo de libro de trabajo que alimente en la parte superior. Si tiene problemas, haga una nueva pregunta y publique el stacktrace completo. – Gagravarr

Cuestiones relacionadas