¿Cómo puedo convertir POI HSSFWorkbook a bytes?

Al llamar a Simple toBytes() sí produce los bytes, pero exel lanza la Advertencia.

Información del documento perdido

Buscar en Google me dio este enlace y buscar en Javadocs la hoja de trabajo y POI HOW-TO para decir cosas similares. Básicamente no puedo obtener Bytes sin perder algo de información y debería usar el método de write lugar.

Mientras que la escritura funciona bien, realmente necesito enviar los bytes. ¿Hay alguna manera de que pueda hacer eso? Eso es obtener los bytes sin recibir ninguna advertencia.

Como decía ese post de la lista de correo

La invocación de HSSFWorkbook.getBytes() no devuelve todos los datos necesarios para reconstruir un archivo Excel completo.

Puede utilizar el método de escritura con un ByteArrayOutputStream para obtener la matriz de bytes.

 ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { workbook.write(bos); } finally { bos.close(); } byte[] bytes = bos.toByteArray(); 

(La llamada de close no es realmente necesaria para un ByteArrayOutputStream , pero ahora es un buen estilo para incluirlo en caso de que luego se cambie a un tipo diferente de flujo)

Qué tal si:

 ByteArrayOutputStream baos = new ByteArrayOutputStream(); workbook.write(baos); byte[] xls = baos.toByteArray(); 

Para obtener un archivo de Excel completo, debe llamar al método de escritura (OutputStream). Si quieres bytes de eso, solo dale un ByteArrayOutputStream