这两天想写个小程序,是用C#操作word文档的。许多人都对微软本身的解决方案COM组件十分不看好,比如需要本机安装office等等,总之吐槽很多,直接放弃。
搜到一个国产的npoi库,据说操作简单功能强大,下载试用,发现操作excel还是不错的,但word不好使。而且官方网站文档不全,更新缓慢。
尝试文本替换,总是出错。加了官方群,问了问题,没人回应。
网上又找了找,发现有个spire的库不错,也有免费的dll可以用。(转个评价:这是一个免费又强大的C# word 组件,它不需要 Word automatio即可运行,并且任何第三方的功能都囊括)
试用了一下,非常简单圆满地解决了我的问题。
代码如下:
private void button1_Click(object sender, EventArgs e) { var doc = new Document(); doc.LoadFromFile("d:\ht.docx"); doc.Replace("[<单位名称>]", tbDwmc.Text, false, false); doc.Replace("[<开户行>]", tbKhh.Text, false, false); doc.Replace("[<银行账号>]", tbYhzh.Text, false, false); doc.Replace("[<单位地址>]", tbAddress.Text, false, false); doc.Replace("[<单位电话>]", tbTel.Text, false, false); var guid = Guid.NewGuid().ToString(); doc.SaveToFile("s" + guid + ".docx", FileFormat.Docx); doc.Close(); Process.Start("s" + guid + ".docx"); }
扯个鸡毛蒜皮的事:
晚上很晚了,npoi官方群里终于有人说话了。看到有一哥们说npoi不好用,我就接了一句说已换spire。此时估计是刺激到了npoi的群主,赫然露面了,先是说在群里问问题不付钱凭什么人搭理你,随后又点出我的问题是智商不够。我迅速回应:骂人不揭短,智商你妈逼哦。
事实上,程序员们辛苦劳动收费是应该的。写点东西不容易,腰酸脖子疼的,收费这一点我非常同意。可你的官方群里,不就是让用户交流的吗?问个问题,只是求高人点拨一下,给个方向或者关键字啥的就已足够。你他妈上来就谈钱,伤感情不说,重点是——竟然被这孙子看出来我智商不高,真是太窘迫啦。
后来,我就被踢了。祝npoi继续发扬光大。
附上spire的链接:https://freeword.codeplex.com/