java - para - ¿Cómo procesar viejos archivos.xls de excel usando POI?
modificar excel desde java (2)
Cambié de jxl a poi ya que POI tiene más funciones. Sin embargo, no pude procesar los archivos xls que se generaron en el formato antiguo. Ahora estoy recibiendo este error:
org.apache.poi.hssf.OldExcelFormatException: La hoja de cálculo suministrada parece ser el formato Excel 5.0 / 7.0 (BIFF5). POI solo es compatible con el formato BIFF8 (de las versiones 97/2000 / XP / 2003 de Excel)
Ahora estoy pensando en usar tanto JXL como POI según la versión xls, así que para los archivos xls de formato antiguo usaré jxl mientras que para las versiones más nuevas usaré POI. ¿Es esta una buena solución? ¿Hay alguna alternativa?
Para los viejos archivos de formato Excel, tiene las siguientes alternativas:
- HSSF , la implementación de
POI
del formato de archivo Excel ''97 (-2007).- Si solo desea extraer el contenido textual, puede usar OldExcelExtractor que solo OldExcelExtractor el texto y los números del archivo.
- Si necesita los valores de una celda específica, deberá adoptar un enfoque un poco como
OldExcelExtractor
, procesar el archivo en el nivel de registro y verificar las coordenadas en OldStringRecord , NumberRecord , OldFormulaRecord y amigos.
- Como ya mencionaste, JXL puede manejar algunos casos también.
- Utilice un JDBC/ODBC . No es tan flexible como
HSSF
pero para algunos formatos antiguos es la única forma de extraer la información.
Según mi conocimiento, puede usar este código para leer archivos de Excel en formato .xls
FileInputStream in=new FileInputStream(new File("filename.xls"));
Wookbook wb=new HSSFWorkbook(in);
para leer las nuevas versiones de excel (2007 y hasta):
FileInputStream in=new FileInputStream(new File("filename.xls"));
Wookbook wb=new XSSFWorkbook(in);
archivos jar externos que necesitará:
1. poi-3.9
2. dom4j-1.6.1
3. XMLbeams-2.5.0
si su trabajo solo requiere que trabaje con .xls, entonces solo poi-3.0 será suficiente. Necesitas los otros frascos para trabajar con las nuevas versiones de Excel.