workbook对象需要关闭_XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法...
xssfworkbook對象的write方法內(nèi)會將傳入的資源流自動關(guān)閉 導(dǎo)致下載excel失敗
錯誤代碼
outputstream out = response.getoutputstream();
zipoutputstream zos = new zipoutputstream(out);
xssfworkbook workbook = new xssfworkbook();
// 將文件寫入zip內(nèi),即將文件進行打包
zos.putnextentry(new zipentry(filename + "(" + uuid.randomuuid() + ")." + typename));
// 此處將自動關(guān)閉zos資源
workbook.wirte(zos);
解決方法: 將xssfworkbook轉(zhuǎn)換成bytearrayoutputstream,用bytearrayoutputstream對象將流寫入zip對象中
outputstream out = response.getoutputstream();
zipoutputstream zos = new zipoutputstream(out);
xssfworkbook workbook = new xssfworkbook();
// 將文件寫入zip內(nèi),即將文件進行打包
zos.putnextentry(new zipentry(filename + "(" + uuid.randomuuid() + ")." + typename));
bytearrayoutputstream bos = new bytearrayoutputstream();
workbook.write(bos);
bos.writeto(zos);
zos.closeentry();
// 當所有文件打包完成后關(guān)閉zos資源
zos.close();
希望與廣大網(wǎng)友互動??
點此進行留言吧!
總結(jié)
以上是生活随笔為你收集整理的workbook对象需要关闭_XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL+for+Mac下载_MySQ
- 下一篇: 按钮传值给ajax,用jquery和aj