Simpleの呼び出し toBytes()
はバイトを生成しますが、exelは警告をスローします。
失われた文書情報
周りをグーグルで検索して、この link と Javadocs ワークシートとPOIを見て HOW-TO 似たようなことを言ってください。基本的に、情報を失うことなくBytes
を取得することはできません。代わりにwrite
メソッドを使用する必要があります。
書き込みは正常に動作しますが、実際にバイトを送信する必要があります。それを行う方法はありますか?これは、警告を出さずにバイトを取得することです。
そのメーリングリストの投稿が言ったように
HSSFWorkbook.getBytes()
を呼び出しても、完全なExcelファイルを再構築するために必要なすべてのデータが返されるわけではありません。
ByteArrayOutputStream
を指定してwriteメソッドを使用すると、バイト配列を取得できます。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
(close
呼び出しはByteArrayOutputStream
には実際には必要ありませんが、後で別の種類のストリームに変更された場合に備えて含めるのが良いスタイルです。)
どうですか:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] xls = baos.toByteArray();
Excelファイル全体を取得するには、write(OutputStream)メソッドを呼び出す必要があります。それからバイトが必要な場合は、ByteArrayOutputStreamを与えるだけです