天天看點

利用Aspose.Word控件實作Word文檔的操作

Aspose系列的控件,功能都挺好,之前一直在我的Winform開發架構中用Aspose.Cell來做報表輸出,可以實作多樣化的報表設計及輸出,由于一般輸出的内容比較正規化或者多數是表格居多,是以一般使用Aspose.Cell來實作我想要的各種Excel報表輸出。雖然一直也知道Aspose.Word是用來生成Word文檔的,而且深信其也是一個很強大的控件,但一直沒用用到,是以就不是很熟悉。

偶然一次機會,一個項目的報表功能指定需要導出為Word文檔,是以尋找了很多篇文章,不過多數介紹的比較簡單一點,于是也參考了官方的幫助介紹,終于滿足了客戶的需求。下面我由淺入深來介紹這個控件在實際業務中的使用過程吧。

日常中,常見的内容輸出就是二維表格的方式,表頭比較固定,内容每行一條,那麼在實際的使用控件我們該如何操作呢,其實這個控件這方面介紹的文章很多,參考一下就能做出來了。其實介紹這個就是要說明書簽的重要性,這個在Aspose.Cell控件也是如此,書簽除了可以用來替換内容,還可以用來标記内容輸入的開始位置等等功能。

首先我們在一個空白的Word文檔中繪制一個表格頭,然後再換行的開始插入一個标簽引用,插入書簽有兩種方式,一種是在Word(2007、2010)的【插入】-【書簽】中插入制定位置的書簽引用,如下所示。

一種是在Word的自定義快速通路工具欄上添加其他指令,如下步驟所示

前者插入的書簽是沒有文字或者特别的标記,但是确實存在,後者會插入一個灰色塊作為占位符,如下所示,我這這個二維表格的例子裡面使用後者進行測試(兩者同等效果的)

這樣設計好Word模闆後,下一步就是如何利用代碼生成二維表格了。首先這裡提示一下,就是我故意設定了每個表格單元格的寬度不同,是以也就要求生成的行要和頭部對應,是以表格生成每行之前,肯定要獲得對應列的樣式屬性的,否則就會對應不上了。下面看代碼。

以上代碼的步驟就是

1)建立Aspose.Words.Document 和 Aspose.Words.DocumentBuilder對象,然後生成資料的二維表格内容。

2)周遊模闆表格,或者每一列的寬度,以備後用。

3)移動到表格的書簽位置,然後開始錄入資料,Word表格的每個Cell都要求制定樣式和寬度,這樣才能和表格頭部吻合。

4)儲存檔案内容到新的檔案裡面即可。

輸出的效果如下所示。

常見的Word檔案或者Excel檔案中,都經常看到合并單元格的内容,是以這個部分也是非常常見的操作,必須掌握。

我們先看一個例子代碼及效果。

他的效果如下

如果上面的例子還不夠明白,OK,我在介紹一個實際的例子,來說明合并單元格的操作模式。

實際文檔生成如下所示:

文檔的模闆如下所示:

其實這個裡面的“測試”内容是使用代碼寫入的,其實就是一行業務資料,用兩行來展示,其中有些合并的單元格,這是一個實際項目的表格形式。我們注意到,每行有13個單元格,其中第一、第二、第十三列是合并列。和并列有一個特點,就是它的兩個索引都有效,不過隻是能使用第一個索引來對它進行操作複制,利用第二個沒有用處的。

如第一個列是和并列,它應該有0、13這樣的索引,第二列也是和并列,它也有1、14的索引,其他的類推。

了解這樣的邏輯關系後,我們看實際操作的代碼如下所示。

繼續閱讀