Word的自動化讀寫庫

之前一直以爲Word作爲微軟的龍頭產品,其生態一定極爲封閉,因此在文檔生成方面一直都使用的Latex。然而使用Word畢竟是大多數人的習慣,要將Latex文檔生成應用到與使用者有交互的場景時總遇到不少問題,於是產生了是不是可以用程序讀取和生成Word的想法。

沒想到經過一番搜索和折騰,發現的確有幾個非常給力的".NET"庫能在用戶不裝Word的情況下做到這件事。本人詳細研究和使用了其中比較有代表性的兩個,在本篇文章中將進行總體簡介,之後在後續的系列文章中將詳細介紹其操作。

DocX庫

DocX庫是"Xceed Words for .NET"的開源版本,github的地址在這。該庫是由愛爾蘭的"Cathal Coffey"博士生開發由"Przemyslaw Klys"維護的。在1.5.0版本後由"Xceed."公司維護,可以在非商業化場景下使用。

本人用該庫完成了一個項目的編寫,最大的感受就是其效率非常高,完成一篇篇幅不小的Word文檔生成就是瞬間的事情,而且對於比較簡單的操作可以通過開源代碼裏面的sample示例習得。因此如果對於沒有啥特殊要求的Word生成場景來說用該庫足矣。

該庫的不足之處在於功能不是特別完善,比如插入三線表本人就弄了半天,表的線寬設置參數有些是無效的等等。而且如果不用模板,生成的文檔的一些默認設置比較非主流。此外該庫最大的功能缺失還在於它只能做文檔生成,文檔讀取方面則無能爲力。

Spire.Doc庫

不同於DocX庫,Spire.Doc庫是一個商用的Word讀取生成庫,因此也是閉源的,官網在此。不過接受了不能研究其源代碼的設定後,用它進行Word的操作相對來說會比DocX庫要完備一點。

該庫分爲兩個版本,商業版本"Spire.Doc"在沒有付費的情況下生成的文檔第一頁會有一行版權聲明。而免費的"Free Spire.Doc"完全免費並沒有任何警告信息,但是免費版有篇幅限制。在加載或操作Word文檔時,要求Word文檔不超過500個段落,25個表格。同時將Word文檔轉換爲PDF和XPS格式時,僅支持轉換前3頁。除了上面的不同外,經過本人測試,其商業版本在生成文檔的效率上要高於免費版本,在本人用其生成包括目錄的文檔時,免費版本用了20s左右的情況下,商業版本只用了10s左右,當然這有可能是免費版本的版本號較低還沒最新商業版本優化的好的緣故。

該庫的優點是功能相對完善,畢竟是商業產品,庫的完成度和資料都不是DocX庫可比的。因此如果要進行Word的讀寫操作,而只希望用一個庫的情況下,該庫無疑是最佳的選擇。而其缺點就是免費版的效率低,因此在一些場景下用該庫又覺得有點彆扭。

而如果能接受用多個庫的情況下,本人覺得最好的解決方案是將源文檔拆成不要超過"Free Spire.Doc"限制的文檔大小,然後使用其進行讀取,而寫入的部分使用DocX庫進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章