1.幫助文檔,這東西找了很久,而且它版本很舊,還是英文,W8.1系統上打不開
http://download.csdn.net/detail/zuofangyouyuan/7673573
2.開源網址:http://docx.codeplex.com/
每次見到導出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天就研究了這些東西.希望以后不再要研究.