C 匯出Word文件開源元件DocX

2022-01-23 21:18:50 字數 1355 閱讀 6255

1.幫助文件,這東西找了很久,而且它版本很舊,還是英文,w8.1系統上打不開

2.開源**:

每次見到匯出word文件的那一堆**就馬上遠離,但這回是逃不過了,做專案要用.在經歷了各種c#搞word的類庫之後,找到了這個docx.雖然它沒有實用的中文文件,但比起其它類庫來有三個優點

1.引入方便 將docx.dll引入到專案就行了

2.不需要搞各種幫助類庫

3.採用操作xml的方式

由於沒有找到實用的文件,只好做了很多試驗,由於水平不高,也以也看不懂原始碼.目前只希望用它最簡潔的方法實現要求.於是採取下述方法

1.word模板,就是建好乙個word文件,將裡面需要替換的內容做成標識.做標識有幾種方法,域,變數,書籤.都沒去學,最後就用了替換字串的經典辦法.比如在列印名字的地方,放個$name,當然,要保證這名字唯一.

迴圈替換:如果遇到數量不定的地方怎麼辦呢,也可以放乙個$value,然後再替換之後,再加上$value,迴圈退出前再刪掉這個$value

**:如果有**(一定有的)怎麼辦呢,可以放乙個**頭在那裡.程式裡找到這個**的方法是doc.tables[index],然後操作這個**就行了.

還沒有解決的地方:不知道怎麼在程式中將輸入點定位到我指定的變數處,目前的做法是,替換那個變數,然後再加內容,這時就會很那個變數處開始.

2.使用方法和xml操作一樣

// 目標檔案路徑

string docname = "c:/work.docx";

// 建立文件(使用模板)

docx doc = docx.load(docname);//也可以是流

3.實用的方法

替換字串:doc.replacetext("$name", "部落格1");

插入段落:doc.insertparagraph("文字");

**合併單元格:

table tb=doc.tables[0];// 表示文件裡的第乙個**

tb.mergecellsincolumn(columnindex,startrowindex,endrowindex);// 這個是在某一列上合併上下行在該列中的單元格

tb.rows[0].mergecells(startcellindex, endcellindex);// 這是在某一行中,合併左右列在該行中的單元格

段落的樣式:

paragraph p=doc.insertparagraph("文字");

p.font(new system.drawing.fontfamily("微軟雅黑"));

p.fontsize(12);

p.alignment = alignment.center;// 中間對齊

還有很多,目前1天就研究了這些東西.希望以後不再要研究.

C 開源元件DocX處理Word文件基本操作 一

c 中處理word文件,是大部分程式猿繞不過的一道門。小公司或一般人員會選擇使用開源元件。目前網路上出現的帖子,大部分是npoi與docx,其它的也有。不囉嗦了,將要使用docx的基本方法貼出來,供參考。經過親測,docx版本1.3.0.0比較穩定,基本功能使用正常 包括,正文及頁首頁尾等 建議大家...

Java POI匯出Word文件

本文章 poi匯出word文件 黑殼網 昨天晚上被殼妹,威逼利誘,做點小東西,其中就有乙個poi匯出word文件。並且最好不要用freemarker模板匯出word文件,只好手動來乙個工具類了。供參考學習 顯示介面 控制層 public class exportcontroller util類 po...

freemarker匯出word文件

1 word建好模板,需要填值的地方先寫上標記詞 2 另存為.xml檔案格式的檔案 替換,然後儲存為.ftl檔案。4 新建乙個map,key就是上面 裡面的字段。value就是需要填入word裡的值 5 用freemarker中的templeta類匯入ftl模板並寫入值 輸出到輸出到檔案 param...