標籤:
這兩天想寫個小程式,是用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/
用C#操作word替換字元,不用npoi,改用spire