ASP.NET---給Word中的Table賦值

Word中的table是要藉助數據區域(DataRegion)實現的,要求數據區域完整的包含了整個Table的內容,這樣才能夠經過數據區域控制和操做table。所以,要想使用table,則必須在word文件中插入書籤(數據區域,即書籤的添加使用與實現方法在「導出word.doc」文檔中已經詳細介紹過了,此處再也不贅述)。而table的插入,既能夠在Word模版中書籤處手動插入:工具欄「插入」→「表格」,亦能夠在程序中經過數據區域動態添加。工具

1、給Word模板中的table手動插入書籤。

1. 把Table包含在數據區域中。
例如:有這樣一我的員信息表,想要在這我的員信息表中填充數據,則必須先將整個成績表的table包含到一個「書籤」中。spa

  人員信息表  
公司名稱 部門名稱 員工姓名
.    

選擇表格,而後插入書籤,好比書籤名爲:PO_regTable,操做步驟以下圖所示:code

注:插入書籤的時候必定要先選中整個table,而後再點擊插入書籤按鈕進行插入。orm

2. 編寫代碼給Table賦值。server

PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
    //獲取Table所在的數據區域對象
    PageOffice.WordWriter.DataRegion dataRegion = doc.OpenDataRegion("PO_regTable");
  	//打開table,openTable(index)方法中的index表明當前書籤中table位置的索引,從1開始
    PageOffice.WordWriter.Table table = dataRegion.OpenTable(1);
    //給table中的單元格賦值, OpenCellRC(行, 列)
    table.OpenCellRC(3, 1).Value = "A公司";
    table.OpenCellRC(3, 2).Value = "開發部";
    table.OpenCellRC(3, 3).Value = "李清";
    //插入一空行,InsertRowAfter方法中的參數表示在哪一個單元格下面插入一行
    table.InsertRowAfter(table.OpenCellRC(3, 3));
    table.OpenCellRC(4, 1).Value = "B公司";
    table.OpenCellRC(4, 2).Value = "銷售部";
    table.OpenCellRC(4, 3).Value = "張三丰";
    
    PageOfficeCtrl1.SetWriter(doc);
    PageOfficeCtrl1.ServerPage = Request.ApplicationPath + "/pageoffice/server.aspx";
    PageOfficeCtrl1.WebOpen("doc/test.doc",PageOffice.OpenModeType.docNormalEdit,"張佚名");

填充數據後的表格以下圖所示:對象

請參考PageOffice產品開發包中Samples4示例:
1、1七、給Word文檔中Table賦值的簡單示例blog

2、程序動態地給word中建立table。

一樣地,程序動態地給word添加table時須要在製做模板的時候先插入一個數據區域,命名爲:PO_table1,這樣就能夠經過獲取到數據區域PO_table1以後,用數據區域對象DataRegion的CreateTable方法在此數據區域所在位置新建一個表格。CreateTable方法有三個參數,分別是:行、列和表格類型。表格類型目前分三種,以下表所示。索引

成員名稱 說明
wdAutoFitFixed 0 將表格設置爲固定大小而與內容無關,所以不會自動調整表格大小。
wdAutoFitContent 1 根據表格中包含的內容自動調整表格的大小。
wdAutoFitWindow 2 根據活動窗口的寬度自動調整表格大小。

代碼實現:開發

WordDocument doc = new WordDocument();
PageOffice.WordWriter.DataRegion drTable1 = doc.OpenDataRegion("PO_table1");
PageOffice.WordWriter.Table table1 = drTable1.CreateTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
table1.OpenCellRC(1, 1).MergeTo(3, 1);
table1.OpenCellRC(1, 1).Value="合併後的單元格";
//給表格table1中剩餘的單元格賦值
for (int i = 1; i < 4; i++)
{
    table1.OpenCellRC(i, 2).Value = "AA" + i.ToString();
    table1.OpenCellRC(i, 3).Value = "BB" + i.ToString();
    table1.OpenCellRC(i, 4).Value = "CC" + i.ToString();
    table1.OpenCellRC(i, 5).Value = "DD" + i.ToString();
}

//在"PO_table1"後面動態建立一個新的數據區域"PO_table2",用於建立新的一個5行5列的表格table2
PageOffice.WordWriter.DataRegion drTable2 = doc.CreateDataRegion("PO_table2", 
                                                 DataRegionInsertType.After, "PO_table1");
PageOffice.WordWriter.Table table2 = drTable2.CreateTable(5, 5, WdAutoFitBehavior.wdAutoFitWindow);
//給新表格table2賦值
for (int i = 1; i < 6; i++)
{
    table2.OpenCellRC(i, 1).Value = "AA" + i.ToString();
    table2.OpenCellRC(i, 2).Value = "BB" + i.ToString();
    table2.OpenCellRC(i, 3).Value = "CC" + i.ToString();
    table2.OpenCellRC(i, 4).Value = "DD" + i.ToString();
    table2.OpenCellRC(i, 5).Value = "EE" + i.ToString();
}

PageOfficeCtrl1.SetWriter(doc);
PageOfficeCtrl1.ServerPage = Request.ApplicationPath + "/pageoffice/server.aspx";
PageOfficeCtrl1.WebOpen("doc/createTable.doc",PageOffice.OpenModeType.docNormalEdit,"張佚名");

生成效果:文檔

154.

請參考PageOffice產品開發包中Samples4示例的「高級功能」演示: 2、4三、在Word文檔中動態建立表格並賦值(專業版、企業版)

相關文章
相關標籤/搜索