Dostaję:Nieprawidłowy podpis nagłówka; IOException z Apache POI w dokumencie Excel
java.io.IOException: Nieprawidłowy podpis nagłówka; czytaj 0x000201060000FFFE oczekuje 0xE11AB1A1E011CFD0
gdy próbuje dodać kilka właściwości niestandardowych do dokumentu programu Excel przy użyciu Apache POI HPSF.
Jestem całkowicie pewien, że plik to Excel OLE2 (nie HTML, XML lub coś innego, na co Excel nie narzeka).
Jest to odpowiednia część mojego kodu:
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);
}
uzyskać ten sam błąd, gdy próbuje słowem i power point plików (również OLE2).
Jestem całkowicie się pomysły więc wszelkie pomoc/wskazówki są bardzo mile widziane :)
Mam ten sam błąd, ale tylko z jednym plikiem, czy rozwiązałeś problem? – Fabio
Jeśli masz ten sam błąd (lub podobny), upewnij się, że plik jest rzeczywiście plikiem Excel, w przeciwnym razie nie otworzy się z POI. Powinien to być format OLE2 lub DOCX. Aby upewnić się, że jeden z tych formatów otworzy plik w programie Excel i "zapisz jako" jakiś format Excela z menu. – Simeon