java导出PDF报错:Unable to recognize OLE stream

根据EXCEL模版导出PDF文件。。主要代码如下:(因代码太多,我就用图片显示了)若不加第一个红色框框里面的三行代码,导出是成功的。。但是现在要求要加一个图片,导出就报错... 根据EXCEL模版导出PDF文件。。
主要代码如下: (因代码太多,我就用图片显示了)

若不加第一个红色框框里面的三行代码,导出是成功的。。但是现在要求要加一个图片,导出就报错:Unable to recognize OLE stream。。
看网上的解决办法都是说是EXCEL的版本问题。。可是我用了03版本的也没用。。
直接在EXCEL模版里面放图片。。导出来的PDF文件里面没有图片
这个问题要怎么解决啊。。。望高手们看看下,有点赶。。。
展开
 我来答
Utrecht1984
推荐于2017-09-06 · TA获得超过157个赞
知道答主
回答量:72
采纳率:0%
帮助的人:86.4万
展开全部

在wb.write(arrayOutput);之前需要reset输出流。

    wb.getSheetAt(0).createDrawingPatriarch().createPicture(anchor, wb.addPicture(arrayOutput.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
    arrayOutput.reset(); // here
    wb.write(arrayOutput);
    arrayOutput.close();

 另外,关闭ByteArrayOutputStream是没有效果的。也就是不需要arrayOutput.close();

    /**
     * Closing a <tt>ByteArrayOutputStream</tt> has no effect. The methods in
     * this class can be called after the stream has been closed without
     * generating an <tt>IOException</tt>.
     */
a6700648
2015-04-09 · TA获得超过616个赞
知道小有建树答主
回答量:448
采纳率:50%
帮助的人:205万
展开全部
不能识别ole流
追问
我知道啊,问题是怎么解决啊。。。 一直报这个错,也不是EXCEL版本的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式