Frage

Ich habe ein Problem mit Apache POI-Projekt.

konnte ich auf den Einsatz XSSF und HSSF in der "Same Java Class" . Welches Glas muss ich herunterladen oder welche Artefakt sollte ich hinzufügen, erhalten in Maven?

Ich möchte beide xls und xlsx Dateien gleichzeitig zu handhaben. Wenn ich Excel-Version Fehler, ich ändert sich die XSSF zu HSSF oder HSSF zu XSSF .

Wie kann ich das tun?

War es hilfreich?

Lösung

Statt das zu tun, versuchen Sie die neue Version von Apache POI mit 3,7, hat es SS-Paket, das sowohl HSSF und XSSF behandelt, ohne sich um Typ sich Gedanken

Details hier: http://poi.apache.org/spreadsheet/index.html

Andere Tipps

Neben der „Standard“ SS Paketlösung, können Sie auch einfach eine if statement verwenden, um richtig das Recht workbook format in ein Workbook interface Objekt zu laden, etwa so:

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.");
}

Verwenden Sie die Fabrik statt, die beide Griffe xssf und HSSF

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

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

Das ist für mich gearbeitet:

    filePath = "C:\Users\user1\workspace\myproject\Excel.xlsx"
    String extension = FilenameUtils.getExtension(filePath);
    System.out.println(extension);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top