使用C# 在Word 中建立表格|在 C# 中建立巢狀表

Word 文件中的表格是一個強大的工具,可以以清晰、結構化的格式組織和呈現資料。表格由行和列組成,它們相交形成可以包含文字、數字、圖像或其他元素的儲存格。在本文中,我們將學習如何使用 C# 以程式設計方式在 Word 文件中建立表格。本文介紹了在程式碼範例支援的 DOCX 檔案中建立表格的各種方法。

本文涵蓋以下主題:

在 Word 文件中建立表格的 C# 庫

為了處理 Word 文件中的表格,我們將使用 Aspose.Words for .NET 函式庫。它是一個強大的庫,使您能夠直接在 .NET 應用程式中以程式設計方式動態建立和操作 Word 文件。

下載 DLL 或使用以下命令從 NuGet 安裝它:

PM> Install-Package Aspose.Words

使用 C# 在 Word 文件中建立表格

使用 Aspose.Words for .NET 在 Word 文件中建立表格的方法有兩種:

  • 使用 DocumentBuilder 類別
  • 使用 DOM(文檔物件模型)

您可以選擇最適合您要求的方法。那麼讓我們來詳細探討一下這些方法。

使用 DocumentBuilder 建立表

DocumentBuilder 類別可以有效率且輕鬆地從頭開始建立動態文件或修改現有文件。憑藉其全面的功能,我們可以無縫插入各種內容元素,包括文字、複選框、OLE 物件、段落、清單、表格、圖像等等。

請依照以下步驟使用 DocumentBuilder 類別在 Word 文件中建立表格。

  1. 建立 Document 類別的物件。
  2. 建立 DocumentBuilder 類別的物件。
  3. 使用 StartTable() 方法建立一個新表。
  4. 使用 InsertCell() 方法插入單元格。
  5. 使用 Write() 方法將文字插入儲存格。
  6. 根據需要重複將儲存格和文字插入到儲存格中。
  7. 使用 EndRow() 方法結束一行。
  8. 使用 EndTable() 方法結束表格。
  9. 最後,使用 Save() 方法儲存 Word 文件。

以下程式碼範例示範如何使用 C# 在 Word 文件中建立表格。

// 此程式碼範例示範如何使用 C# 在 Word 文件中建立表格
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 開始建表。
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// 建構第二個單元格。
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// 呼叫以下方法結束該行並開始新行。
builder.EndRow();

// 建立第二行的第一個單元格。
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// 建構第二個單元格。
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// 表明我們已經完成了表格的建構。
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
使用 DocumentBuilder 在 Word 中建立表格

使用 DocumentBuilder 建立表

使用文檔物件模型 (DOM) 建立表

文檔物件模型 (DOM) 是 Word 文件的記憶體表示形式。它支援以程式設計方式讀取、操作和修改 Word 文件的內容和格式。

請依照以下步驟使用 DOM 在 Word 文件中建立表格。

  1. 建立 Document 類別的物件。
  2. 使用 Table() 類別建立一個新表。
  3. 使用 AppendChild() 方法將表格新增至文件正文。
  4. 建立 Row 類別的物件並使用 Table.AppendChild(Row) 方法將其插入表中。
  5. 建立 Cell 類別的對象,設定格式選項並為儲存格新增文字。
  6. 使用 Row.AppendChild(Cell) 方法將儲存格插入行中。
  7. 之後,根據需要對任意多行重複此過程。
  8. 最後,使用 Save() 方法儲存 Word 文件。

以下程式碼範例示範如何使用 C# 在 Word 文件中建立表格。

// 此程式碼範例示範如何在 C# 中使用 DOM 在 Word 文件中建立表格
Document doc = new Document();

// 我們首先建立表物件。注意我們必須傳遞文檔對象
// 到每個節點的構造函數。這是因為我們創建的每個節點都必須屬於
// 到某個文檔。
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// 在這裡,我們可以呼叫 EnsureMinimum 來為我們建立行和單元格。使用這個方法
// 確保指定的節點有效。在這種情況下,有效的表格應至少具有一行和一個儲存格。

// 相反,我們將自己處理行和表的創建。
// 如果我們在演算法中建立表,這將是最好的方法。
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// 我們現在可以套用任何自動調整設定。
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// 追加一個單元格
row.AppendChild(cell);

// 然後,我們將對錶中的其他單元格和行重複該過程。
// 我們還可以透過複製現有的單元格和行來加快速度。
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// 儲存文件
doc.Save("InsertTableDirectly.docx");
使用文檔物件模型 (DOM) 建立表

使用文檔物件模型 (DOM) 建立表

使用 C# 在 Word 文件中建立巢狀表

我們也可以在表格的儲存格內建立一個新表格。以下是在 Word 文件中建立巢狀表格的步驟。

  1. 建立 Document 類別的物件。
  2. 建立 DocumentBuilder 類別的物件。
  3. 使用 StartTable() 方法建立一個表格並在物件中取得對該表的參考。
  4. 使用 InsertCell() 方法插入單元格並取得物件中單元格的參考。
  5. 使用 DocumentBuilder.Write() 方法將文字插入儲存格。
  6. 根據需要重複將儲存格和文字插入到儲存格中。
  7. 插入所有行後結束表。
  8. 使用 MoveTo(cell.FirstParagraph) 方法將控制項移至所需儲存格內。
  9. 透過插入儲存格建立另一個表格,完成後結束表格。
  10. 最後,使用 Save() 方法儲存 Word 文件。

以下程式碼範例示範如何使用 C# 在 Word 文件中建立巢狀表。

// 此程式碼範例示範如何使用 C# 在 Word 文件中建立巢狀表格
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// 此呼叫對於在第一個表中建立巢狀表非常重要。 
// 如果沒有此調用,下面插入的單元格將被附加到外表。
builder.EndTable();

// 移至外表的第一個儲存格。
builder.MoveTo(cell.FirstParagraph);

// 建構內表。
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// 儲存文件
doc.Save("NestedTable.docx");
使用 C# 在 Word 文件中建立巢狀表

使用 C# 在 Word 文件中建立巢狀表

在 C# 中複製 Word 文件中的現有表

我們可以依照以下步驟複製Word文件中的現有表格:

  1. 使用 Document 類別載入帶有表格的現有文件。
  2. 使用 GetChild(NodeType.TABLE, int, boolean) 方法取得物件中的表。
  3. 使用 Table.Clone(True) 方法克隆表。
  4. 使用 Table.ParentNode.InsertAfter() 方法插入複製表。
  5. 使用 Table.ParentNode.InsertAfter(new Paragraph(Document), Table) 方法在表格之間插入空白段落。
  6. 最後,使用 Save() 方法儲存 Word 文件。

以下程式碼範例示範如何使用 C# 複製 Word 文件中的表格。

// 此程式碼範例示範如何使用 C# 複製 Word 文件中的現有表格
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// 複製表格並將其插入文件中的原始表格之後。
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// 在兩個表格之間插入一個空段落,
// 否則它們將在保存時合併為一個,這與文件驗證有關。
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
在 C# 中複製 Word 文件中的現有表

在 C# 中複製 Word 文件中的現有表

從 HTML 在 Word 文件中建立表格

我們也可以按照以下步驟使用 HTML 字串在 Word 文件中建立表格:

  1. 建立 Document 類別的物件。
  2. 建立 DocumentBuilder 類別的物件。
  3. 使用 DocumentBuilder.InsertHtml(String) 方法將表格的 HTML 字串插入文件中。
  4. 最後,使用 Document.Save() 方法儲存文件。

以下程式碼範例示範如何使用 C# 在 Word 文件中插入 HTML 表格。

// 此程式碼範例示範如何使用 C# 在 Word 文件中插入 HTML 表格
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 請注意,AutoFitSettings 不適用於從 HTML 插入的表格。
builder.InsertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

doc.Save("InsertTableFromHtml.docx");
從 HTML 在 Word 文件中建立表格

從 HTML 在 Word 文件中建立表格

取得免費的 API 許可證

您可以獲得臨時許可證來使用 Aspose.Words for .NET,而不受評估限制。

結論

在本文中,我們學習如何使用 C# 在 Word 文件中建立表格。我們探索了使用 C# 以程式設計方式建立表格的各種方法。我們也了解如何動態建立巢狀表格或複製 Word 文件中的現有表格。此外,您可以使用文件了解更多並探索該庫的各種其他功能。如有任何疑問,請隨時透過我們的免費支援論壇與我們聯繫。

也可以看看