Appeler Simple toBytes()
produit les octets mais exel lance Warning.
Informations sur le document perdu
La recherche sur Google m'a donné link et en regardant Javadocs pour la feuille de calcul et le POI HOW-TO dire des choses similaires. Fondamentalement, je ne peux pas obtenir Bytes
sans perdre des informations et je devrais utiliser la méthode write
à la place.
Bien que l'écriture fonctionne correctement, j'ai vraiment besoin d'envoyer les octets. Existe-t-il un moyen de le faire? C'est-à-dire obtenir les octets sans recevoir d'avertissement.
Comme le disait cette liste de diffusion
L'appel
HSSFWorkbook.getBytes()
ne renvoie pas toutes les données nécessaires pour reconstruire un fichier Excel complet.
Vous pouvez utiliser la méthode d'écriture avec un ByteArrayOutputStream
pour obtenir le tableau d'octets.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
} finally {
bos.close();
}
byte[] bytes = bos.toByteArray();
(L'appel close
n'est pas vraiment nécessaire pour un ByteArrayOutputStream
, mais à mon humble avis, il est bon de l'inclure de toute façon au cas où il serait changé ultérieurement en un autre type de flux.)
Que diriez-vous:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] xls = baos.toByteArray();
Pour obtenir un fichier Excel complet, vous devez appeler la méthode d'écriture (OutputStream). Si vous voulez des octets de cela, donnez juste un ByteArrayOutputStream