C#導出Word文檔開源組件DocX


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天就研究了這些東西.希望以后不再要研究.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM