Einfach anrufen toBytes()
erzeugt zwar die Bytes, aber Excel gibt eine Warnung aus.
Informationen zu verlorenen Dokumenten
Beim Googeln habe ich das gefunden Verknüpfung und anschauen Javadocs für Arbeitsblatt und POI WIE MAN ähnliche Dinge sagen. Im Grunde kann ich es nicht bekommen Bytes
ohne einige Informationen zu verlieren und sollte das verwenden write
Methode statt.
Während das Schreiben gut funktioniert, muss ich unbedingt die Bytes senden. Gibt es eine Möglichkeit, wie ich das machen kann? Das bedeutet, die Bytes abzurufen, ohne eine Warnung zu erhalten.
Wie es in diesem Mailinglistenbeitrag heißt
Aufrufen HSSFWorkbook.getBytes()
gibt nicht alle Daten zurück, die zum Wiederherstellen einer vollständigen Excel-Datei erforderlich sind.
Sie können die Schreibmethode mit a verwenden ByteArrayOutputStream
um an das Byte-Array zu gelangen.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
(Der close
Anruf ist für a nicht wirklich nötig ByteArrayOutputStream
aber meiner Meinung nach ist es trotzdem ein guter Stil, ihn einzubinden, für den Fall, dass er später in eine andere Art von Stream geändert wird.)
Wie wäre es mit:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] xls = baos.toByteArray();
Um eine vollständige Excel-Datei zu erhalten, müssen Sie die Methode write(OutputStream) aufrufen. Wenn Sie davon Bytes möchten, geben Sie einfach einen ByteArrayOutputStream an
14520000cookie-checkWie kann ich POI HSSFWorkbook in Bytes konvertieren?yes