Ich erhalte:Ungültige Header-Signatur; IOException mit Apache POI auf Excel-Dokument
java.io.IOException: Ungültige Header-Signatur; 0x000201060000FFFE lesen, erwartet 0xE11AB1A1E011CFD0
wenn einige benutzerdefinierte Eigenschaften in ein Excel-Dokument hinzuzufügen versuchen, Apache POI HPSF verwenden.
Ich bin mir absolut sicher, dass die Datei Excel OLE2 ist (nicht HTML, XML oder etwas anderes, über das sich Excel nicht beschwert).
Dies ist ein relevanter Teil meines Code:
try {
final POIFSFileSystem poifs = new POIFSFileSystem(event.getStream());
final DirectoryEntry dir = poifs.getRoot();
final DocumentEntry dsiEntry = (DocumentEntry)
dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
final DocumentInputStream dis = new DocumentInputStream(dsiEntry);
final PropertySet props = new PropertySet(dis);
dis.close();
dsi = new DocumentSummaryInformation(props);
}
catch (Exception ex) {
throw new RuntimeException
("Cannot create POI SummaryInformation for event: " + event +
", path:" + event.getPath() +
", name:" + event.getPath() +
", cause:" + ex);
}
ich den gleichen Fehler, wenn sie mit Wort und Powerpoint-Dateien (auch OLE2) versuchen.
Ich bin völlig aus Ideen so dass jede Hilfe/Zeiger sehr geschätzt werden :)
Ich habe den gleichen Fehler, aber nur mit einer Datei, haben Sie das Problem gelöst? – Fabio
Wenn Sie denselben Fehler (oder einen ähnlichen Fehler) haben, stellen Sie sicher, dass die Datei tatsächlich eine Excel-Datei ist, andernfalls wird sie nicht mit POI geöffnet. Es sollte entweder OLE2-Format oder DOCX sein. Um sicher zu sein, eines seiner Formate öffnen Sie die Datei in Excel und 'Speichern unter' einige Excel-Format aus dem Menü. – Simeon