如何返回.xlsx文件的输出流

时间:2014-11-20 10:47:04

标签: java excel

在一个java类我刚刚创建了这样的工作簿  XSSFWorkbook workbook = (XSSFWorkbook) WorkbookFactory.create(fis); 和填充的细胞及其相应的细胞类型。 现在我需要将其写为xxx.xlsx文件,同时返回BuyteArrayOutputStream。 这样做,

FileOutputStream fos = new FileOutputStream(tempFile);
workbook.write(fos);

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
return outputStream;

这里写成xxx.xlsx fils成功但同时将outputStream返回为null? 如何实现它?

1 个答案:

答案 0 :(得分:0)

首先我将它写入输出流并获取byte []。之后通过 Apache Commons IO的IOUtils.write()稍后写成文件。

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
byte[] b = outputStream.toByteArray();
FileOutputStream fos = new FileOutputStream(tempFile);
IOUtils.write(b, fos);
return outputStream;