日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
開(kāi)源Word讀寫(xiě)組件DocX介紹與入門(mén)

今天向大家介紹一款.NET下的開(kāi)源輕量級(jí)Word 2007/2010格式讀寫(xiě)組件DocX,很小巧,能夠滿(mǎn)足大部分工作需求吧,最重要的是可以不用龐大的Office。

10年積累的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有舟曲免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.前言

讀寫(xiě)Offic格式的文檔,大家多少都有用到,可能方法也很多,組件有很多。這里不去討論其他方法的優(yōu)劣,只是向大家介紹一款開(kāi)源的讀寫(xiě)word文檔的組件。讀寫(xiě)Excel有NPOI,讀寫(xiě)Word,那看看DocX吧。

DocX是一個(gè)以非常直觀(guān)簡(jiǎn)單的方式操作Word 2007/2010文件的輕量級(jí).NET組件。它的速度非常快,而且不需要安裝微軟的Office軟件。在中國(guó),免費(fèi)并且小巧的WPS有足夠的理由讓很多用戶(hù)放棄龐大的Office,那在實(shí)際軟件開(kāi)發(fā)過(guò)程中,這玩意就有用處了。遺憾是不支持2003,但總歸是被淘汰的趨勢(shì),而且用WPS,也沒(méi)有啥版本的區(qū)別。

2.DocX的主要特點(diǎn)

DocX組件目前的最新版本是V1.0.0.12,主要特點(diǎn)有:

1.支持在文件中插入、刪除和替代文本,支持所有的文本格式,如字體,下劃線(xiàn),高亮等。

2.支持插入圖片、超鏈接、表格、頁(yè)眉頁(yè)腳以及自定義屬性等。

3.支持類(lèi)似JQuery的鏈?zhǔn)綄?xiě)法,很方便編程開(kāi)發(fā)。

3.DocX入門(mén)例子

DocX中一個(gè)Word文檔的主要對(duì)象有段落(Paragraph)、圖像(Image)、表格(Table)、自定義屬性(CustomProperty)。關(guān)于詳細(xì)的使用和API接口,可以參考CHM文檔,沒(méi)有自己制作最新版的,我用的是上一個(gè)版本,基本使用夠了。有精力的可以自己去看源碼,自己制作一份。注意,無(wú)特殊注明,本文的絕大部分代碼都來(lái)自V1.0.0.10版本的幫助文檔,新的11和12版本好像沒(méi)有增加大的新功能,只是修改不少Bug,以及增加了案例和單元測(cè)試,至于沒(méi)有介紹到的,可以自己去翻文檔,大家可以去開(kāi)源網(wǎng)站下載最新源碼。

3.1 新建與加載Doc文檔

新建和加載Word文檔的方法都在Docx類(lèi)中,操作也很簡(jiǎn)單,如下所示:

 
 
 
  1. //新建一個(gè)Word文檔,加載Load的方法和Create使用一樣。 
  2.  using (DocX document = DocX.Create(@"..\Test.docx")) 
  3.  { 
  4.      //添加一些基本對(duì)象,如段落等 
  5.      document.Save();//保存 
  6.  } 

3.2 添加段落及控制格式

 文本段落和格式控制是Word文檔的最常用對(duì)象,DocX支持插入段落以及對(duì)段落格式進(jìn)行很全面的控制。下面一一舉例。

插入段落的方法是DocX類(lèi)的InsertParagraph方法,該方法有好幾種使用方法,不僅可以控制插入的位置,還可以控制格式。

 
 
 
  1. using (DocX document = DocX.Create(@"Test.docx")) 
  2.  { 
  3.      //首先創(chuàng)建1個(gè)格式對(duì)象 
  4.      Formatting formatting = new Formatting(); 
  5.      formatting.Bold = true; 
  6.      formatting.FontColor = Color.Red; 
  7.      formatting.Size = 30; 
  8.       //控制段落插入的位置 
  9.      int index = document.Text.Length / 2; 
  10.      //將文本插入到指定位置,并控制格式 
  11.      document.InsertParagraph(index, "New text", false, formatting); 
  12.      document.Save();//保存文檔 
  13.  } 

注意,上面只是插入段落,也可以單獨(dú)定義1個(gè)段落對(duì)象Paragraph,然后在這個(gè)段落中插入表格,圖像,以及操作自定義屬性。如下面的例子,其中比較詳細(xì)介紹的對(duì)圖像的操作:

 
 
 
  1. using (DocX document = DocX.Create(@"Test.docx")) 
  2.  { 
  3.      //給文檔新建1個(gè)段落對(duì)象 
  4.      Paragraph p = document.InsertParagraph("Here is Picture 1", false); 
  5.      //給文檔添加1個(gè)圖像 
  6.      Novacode.Image img = document.AddImage(@"Image.jpg"); 
  7.      //將圖像插入到段落后面 
  8.      Picture pic = p.InsertPicture(img.Id, "Photo 31415", "A pie I baked."); 
  9.      //選擇圖像,并修改圖像尺寸 
  10.      pic.Rotation = 30;     
  11.      pic.Width = 400; 
  12.      pic.Height = 300; 
  13.      //設(shè)置圖片形狀,并水平翻轉(zhuǎn)圖片 
  14.      pic.SetPictureShape(BasicShapes.cube); 
  15.      pic.FlipHorizontal = true;     
  16.      document.Save();//保存文檔 
  17.  } 

格式控制Formatting類(lèi)全部是屬性,沒(méi)有方法。有很多控制格式的屬性,直接進(jìn)行設(shè)置就可以了,暫時(shí)沒(méi)有發(fā)現(xiàn)這個(gè)版本支持樣式,所以只能定義1個(gè)全局格式來(lái)控制標(biāo)題了。具體的格式控制可以去看該類(lèi)的文檔。太多,不一一列舉,基本使用上面的代碼就可以說(shuō)明了。

另外新版本已經(jīng)支持了增加超鏈接(Hyperlink)功能,使用很簡(jiǎn)單,DocX的AddHyperlink方法直接完成。

3.3 插入圖像及圖像控制

上面的例子其實(shí)已經(jīng)介紹了幾種插入圖片的方式,一種是在DocX對(duì)象中直接AddImage,另外就是在段落中插入。其中3.2的例子已經(jīng)很詳細(xì)介紹了圖像的控制,比如修改尺寸,旋轉(zhuǎn)等。更詳細(xì)的設(shè)置在Picture類(lèi)中。

3.4 插入表格及表格控制

表格是Word文檔另外一個(gè)重點(diǎn),在實(shí)際使用環(huán)境中,也是比例很高的一個(gè)。先介紹下DocX中表格對(duì)象的結(jié)構(gòu):

1個(gè)表格對(duì)象Table有行,列組成,行列可以通過(guò)索引訪(fǎng)問(wèn)。Table對(duì)象的基本單一是單元格(Cell),每一個(gè)Row對(duì)象由多個(gè)Cell對(duì)象組成,Cell對(duì)象有一個(gè)默認(rèn)的Paragraph對(duì)象,這樣可以對(duì)這個(gè)Paragraph對(duì)象進(jìn)行格式控制,從而控制單元格的格式。表格還可以設(shè)置相關(guān)屬性,對(duì)齊,是否自適應(yīng)表格大小等。Table對(duì)象的操作也很靈活,可以插入和移除行,同樣也可以插入和移除列。

DocX對(duì)象插入表格也有幾種方式,可以直接用DocX對(duì)象的InsertTable方法,也可以在段落對(duì)象后面插入;同理也可以在Table對(duì)象前后插入段落對(duì)象,這與排版有關(guān)了???個(gè)綜合的例子吧:

3.5 頁(yè)眉頁(yè)腳控制

頁(yè)面和頁(yè)腳的使用非常類(lèi)似。支持三種類(lèi)型,首頁(yè),奇數(shù)頁(yè)和偶數(shù)頁(yè)。貌似還沒(méi)有支持節(jié)。這里只列舉頁(yè)腳的基本使用。

 
 
 
  1. using (DocX document = DocX.Create(@"Test.docx"))  
  2.  { 
  3.      document.AddFooters();//添加所有的頁(yè)腳 
  4.      Footers footers = document.Footers; //獲取該文檔所有的頁(yè)腳 
  5.      //獲取文檔第一頁(yè)的頁(yè)腳 
  6.      Footer first = footers.first;  
  7.      //獲取奇數(shù)頁(yè)的頁(yè)腳 
  8.      Footer odd = footers.odd;  
  9.      //獲取偶數(shù)頁(yè)的頁(yè)腳 
  10.      even = footers.even;  
  11.      //設(shè)置不同頁(yè)使用不同的頁(yè)腳 
  12.      document.DifferentFirstPage = true;  
  13.      document.DifferentOddAndEvenPages = true;  
  14.      //設(shè)置頁(yè)腳的內(nèi)容 
  15.      Paragraph p = first.InsertParagraph(); 
  16.      p.Append("This is the first pages footer.");     
  17.      document.Save(); //記得保存 
  18.  } 

3.6 自定義屬性支持

雖然還沒(méi)有用DocX投入實(shí)際使用,但個(gè)人認(rèn)為對(duì)自定義屬性的支持是最強(qiáng)大的1個(gè)功能,不僅可以自己制作模版,還可以直接在DocX中新增自定義屬性,這樣在導(dǎo)出大批量相同的格式的文檔時(shí)就很有用。比如打印成績(jī)單,報(bào)表等等。由于本人從沒(méi)有使用Word 2007及以上版本,所有也從沒(méi)有接觸過(guò)這個(gè)自定義屬性功能。我的理解,類(lèi)似一個(gè)“占位標(biāo)”或”文本控件”,然后在開(kāi)發(fā)的時(shí)候,可以給這些位置填充值,以批量生成一些文件。下面只簡(jiǎn)單的介紹一個(gè)直接添加自定義屬性,并賦值的例子,高級(jí)一點(diǎn)的話(huà),可以自己更加細(xì)致的排版,這樣就美觀(guān)點(diǎn)。

 
 
 
  1. using (DocX document = DocX.Load(@"C:\Example\Test.docx")) 
  2.  { 
  3.      //先定義一個(gè)自定義屬性 
  4.      CustomProperty forename; 
  5.      //先判斷文檔中是否存在該名稱(chēng)的自定義屬性 
  6.      if (!document.CustomProperties.ContainsKey("forename")) 
  7.      {    //不存在則創(chuàng)建一個(gè),并給其賦值"Cathal" 
  8.          document.AddCustomProperty(new CustomProperty("forename", "Cathal")); 
  9.      } 
  10.      //獲取這個(gè)自定義屬性,并打印出它的值 
  11.      forename = document.CustomProperties["forename"]; 
  12.      Console.WriteLine(string.Format("Name: '{0}', Value: '{1}'\nPress any key...",  
  13.                          forename.Name, forename.Value)); 
  14.      document.Save(); 
  15.  } 

4.資源

開(kāi)源網(wǎng)址:http://docx.codeplex.com/

原文鏈接:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html


本文標(biāo)題:開(kāi)源Word讀寫(xiě)組件DocX介紹與入門(mén)
鏈接地址:http://www.5511xx.com/article/cosdpde.html