这两天想写个小程序,是用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"); }