2010-11-24 9 views
6

J'ai un problème avec le projet Apache POI. Je n'ai pas réussi à utiliser XSSF et HSSF dans le "Classe Java". Quel pot dois-je télécharger ou quel artefact devrais-je ajouter dans maven? Je veux gérer à la fois les fichiers xls et xlsx en même temps. Lorsque j'obtiens une erreur de version Excel, je vais changer le XSSF en HSSF ou HSSF en XSSF.POI Apache, utilisant à la fois XSSF et HSSF

Comment est-ce que je peux faire ceci?

Répondre

12

au lieu de le faire, essayez d'utiliser la nouvelle version de POI Apache 3.7, il a package SS qui gère à la fois HSSF et XSSF sans se soucier de Type

Détails ici: http://poi.apache.org/spreadsheet/index.html

+0

Tout d'abord merci pour votre aide. J'ai vérifié la page que vous avez mentionnée. D'accord. J'ai ajouté le code ci-dessous dans mon pom.xml: org.apache.poi poi-contrib 3,7 beta3 Cependant, malgré que mon Java classe ne peut toujours pas résoudre XSSFWorkbook? Il n'y a pas de problème sur HSSFWorkbook(); Workbook [] wbs = new Workbook [] {nouveau HSSFWorkbook(), nouveau XSSFWorkbook()}; –

+5

XSSFWorkbook est dans groupId: org.apache.poi, artifactId: poi-ooxml – rlovtang

5

En dehors de la « norme "solution paquet de SS, vous pouvez également utiliser simplement un if statement pour charger correctement le droit workbook format dans un objet Workbook interface, comme ceci:

Workbook workbook; //<-Interface, accepts both HSSF and XSSF. 
File file = new File("YourExcelFile.xlsx"); 
if (FileUtils.getFileExt(file).equalsIgnoreCase("xls")) { 
    workbook = new HSSFWorkbook(new FileInputStream(file)); 
} else if (FileUtils.getFileExt(file).equalsIgnoreCase("xlsx")) { 
    workbook = new XSSFWorkbook(new FileInputStream(file)); 
} else { 
    throw new IllegalArgumentException("Received file does not have a standard excel extension."); 
} 
+0

Et 'IWorkbook' si vous utilisez NPOI –

0

utilisez l'usine au lieu où h andles xssf et hssf

import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.ss.usermodel.WorkbookFactory; 

Workbook wb = WorkbookFactory.create(new File("file")) 
Questions connexes