900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > npoi插入word图片(终于解决插入图片后打不开word)

npoi插入word图片(终于解决插入图片后打不开word)

时间:2019-05-07 02:00:51

相关推荐

npoi插入word图片(终于解决插入图片后打不开word)

npoi向word插入图片总结

npoi插入word,一把辛酸一把泪呀,开始总是不能插入图片,一插入就word就打不开了,网上百度,好多人都有这个问题,后来看到一篇poi博客poi博客介绍到这个是一个poi项目的bug。后来就一直在想怎么解决这个bug,悻然我们.net也有大神的存在,博客解决了这个问题npoi博客,但是我照着他的套路做,总是不成功,提示“未将对象引用设置到对象的实例”,好崩溃,后来让老大过来帮忙,终于解决了。特别提示:不同npoi版本对word操作有很大影响。博主曾经试验过很多npoi版本,最后确定npoi2.1.3,兼容性良好。(最后成功整理好的代码,换了其他版本,就不行,就是这么神奇,最新版本2.2.1也不行,想不通poi团队怎么会允许这个bug存在这么长时间)。下面开始正式介绍。

一、介绍这个插入图片的bug

你在网上看到的代码可能是这个样子:

C# Code

上面这段代码初次运行,没有任何问题,word也能打得开,因为是初次创建word,里面没有任何内容。但是你若将FileMode.Create换成FileMode.Append,你再试试,打开word,就会出现下面这个界面:

这是为什么呢?据那篇博客介绍,这是因为在向有内容的word插入图片时,没有正确写入xml文件。那么这个xml文件从哪里看呢?word文件是可以用winRAR打开的,你用winRAR打开就看到了。

结论:上述代码在首次创建word时可以插入图片,当word中有内容的时候追加,就会产生错误写入xml,从而出现打不开word的局面。

二、解决办法

既然不能Append,那我们就在首次创建word的时候,将所有图片一次性加入吧。代码如下:

C# Code

附上npoi插入页码教程:插入页码

注:每插入一张图片,都必须开启一次文件流,注意是必须,一个文件流只能插入一张图片,所以,最好的办法就是循环。

本次博客就分享到这里,我们下次再会。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。