Tạo bảng trong Word bằng C# | Tạo các bảng lồng nhau trong C#

Bảng trong tài liệu Word là một công cụ mạnh mẽ để tổ chức và trình bày dữ liệu theo định dạng rõ ràng và có cấu trúc. Bảng bao gồm các hàng và cột giao nhau để tạo thành các ô có thể chứa văn bản, số, hình ảnh hoặc các phần tử khác. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo bảng trong tài liệu Word theo chương trình bằng C#. Bài viết này trình bày các phương pháp khác nhau để tạo bảng trong tệp DOCX được hỗ trợ bởi các mẫu mã.

Bài viết này bao gồm các chủ đề sau:

Thư viện C# để tạo bảng trong tài liệu Word

Để làm việc với các bảng trong tài liệu Word, chúng ta sẽ sử dụng thư viện Aspose.Words for .NET. Đây là một thư viện mạnh mẽ cho phép bạn tạo và thao tác linh hoạt các tài liệu Word theo chương trình trực tiếp trong các ứng dụng .NET.

Vui lòng tải xuống DLL hoặc cài đặt nó từ NuGet bằng lệnh sau:

PM> Install-Package Aspose.Words

Tạo bảng trong tài liệu Word trong C#

Có hai cách để tạo bảng trong tài liệu Word bằng Aspose.Words for .NET:

  • Sử dụng lớp DocumentBuilder
  • Sử dụng DOM (Mô hình đối tượng tài liệu)

Bạn có thể chọn phương pháp phù hợp nhất với yêu cầu của bạn. Vì vậy, hãy khám phá chi tiết từng phương pháp này.

Tạo bảng bằng DocumentBuilder

Lớp DocumentBuilder cho phép tạo các tài liệu động một cách hiệu quả và dễ dàng từ đầu hoặc sửa đổi các tài liệu hiện có. Với phạm vi chức năng toàn diện của nó, chúng tôi có thể chèn liền mạch các thành phần nội dung đa dạng, bao gồm văn bản, hộp kiểm, đối tượng OLE, đoạn văn, danh sách, bảng, hình ảnh, v.v.

Vui lòng làm theo các bước bên dưới để tạo bảng trong tài liệu Word bằng lớp DocumentBuilder.

  1. Tạo một đối tượng của lớp Tài liệu.
  2. Tạo một đối tượng của lớp DocumentBuilder.
  3. Tạo một bảng mới bằng phương thức StartTable().
  4. Chèn một ô bằng phương thức InsertCell().
  5. Chèn văn bản vào ô bằng phương thức Write().
  6. Lặp lại việc chèn ô và văn bản vào ô theo yêu cầu.
  7. Kết thúc một hàng bằng phương thức EndRow().
  8. Kết thúc bảng bằng phương thức EndTable().
  9. Cuối cùng, lưu tài liệu Word bằng phương thức Save().

Mẫu mã sau đây cho biết cách tạo bảng trong tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách tạo bảng trong tài liệu Word bằng C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Bắt đầu xây dựng bảng.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Xây dựng ô thứ hai.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Gọi phương thức sau để kết thúc hàng và bắt đầu một hàng mới.
builder.EndRow();

// Xây dựng ô đầu tiên của hàng thứ hai.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Xây dựng ô thứ hai.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Báo hiệu chúng ta đã hoàn thành việc xây dựng bảng.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Tạo bảng trong Word bằng DocumentBuilder

Tạo bảng bằng DocumentBuilder

Tạo bảng bằng Mô hình đối tượng tài liệu (DOM)

Mô hình đối tượng tài liệu (DOM) là bản trình bày trong bộ nhớ của tài liệu Word. Nó cho phép truy cập theo chương trình để đọc, thao tác và sửa đổi nội dung cũng như định dạng của tài liệu Word.

Vui lòng làm theo các bước bên dưới để tạo bảng trong tài liệu Word bằng DOM.

  1. Tạo một đối tượng của lớp Tài liệu.
  2. Tạo một bảng mới bằng lớp Table().
  3. Thêm bảng vào nội dung tài liệu bằng phương thức AppendChild().
  4. Tạo một đối tượng của lớp Row và chèn nó vào bảng bằng phương thức Table.AppendChild(Row).
  5. Tạo một đối tượng của lớp Ô, đặt các tùy chọn định dạng và thêm văn bản vào ô.
  6. Chèn ô vào hàng bằng phương thức Row.AppendChild(Cell).
  7. Sau đó, lặp lại quy trình cho bao nhiêu hàng tùy thích.
  8. Cuối cùng, lưu tài liệu Word bằng phương thức Save().

Mẫu mã sau đây cho biết cách tạo bảng trong tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách tạo bảng trong tài liệu Word bằng DOM trong C#
Document doc = new Document();

// Chúng ta bắt đầu bằng cách tạo đối tượng bảng. Lưu ý rằng chúng ta phải truyền đối tượng tài liệu
// tới hàm tạo của mỗi nút. Điều này là do mọi nút chúng tôi tạo phải thuộc về
// tới một tài liệu nào đó.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Ở đây chúng ta có thể gọi EnsureMinimum để tạo các hàng và ô cho chúng ta. Phương pháp này được sử dụng
// để đảm bảo rằng nút được chỉ định là hợp lệ. Trong trường hợp này, một bảng hợp lệ phải có ít nhất một Hàng và một ô.

// Thay vào đó, chúng ta sẽ tự xử lý việc tạo hàng và bảng.
// Đây sẽ là cách tốt nhất để làm điều này nếu chúng ta tạo một bảng bên trong một thuật toán.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Bây giờ chúng ta có thể áp dụng bất kỳ cài đặt tự động điều chỉnh nào.
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"));

// Nối một ô
row.AppendChild(cell);

// Sau đó, chúng tôi sẽ lặp lại quy trình cho các ô và hàng khác trong bảng.
// Chúng ta cũng có thể tăng tốc mọi thứ bằng cách sao chép các ô và hàng hiện có.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Lưu tài liệu
doc.Save("InsertTableDirectly.docx");
Tạo bảng bằng Mô hình đối tượng tài liệu (DOM)

Tạo bảng bằng Mô hình đối tượng tài liệu (DOM)

Tạo bảng lồng nhau trong tài liệu Word bằng C#

Chúng ta cũng có thể tạo một bảng mới trong một ô của bảng. Sau đây là các bước để tạo bảng lồng nhau trong tài liệu Word.

  1. Tạo một đối tượng của lớp Tài liệu.
  2. Tạo một đối tượng của lớp DocumentBuilder.
  3. Tạo một bảng bằng phương thức StartTable() và lấy tham chiếu đến bảng trong một đối tượng.
  4. Chèn một ô bằng phương thức InsertCell() và lấy tham chiếu đến ô trong đối tượng.
  5. Chèn văn bản vào ô bằng phương thức DocumentBuilder.Write().
  6. Lặp lại việc chèn ô và văn bản vào ô theo yêu cầu.
  7. Kết thúc bảng khi bạn đã chèn hết các hàng.
  8. Di chuyển điều khiển bên trong ô mong muốn bằng phương thức MoveTo(cell.FirstParagraph).
  9. Tạo một bảng khác bằng cách chèn các ô và kết thúc bảng khi hoàn tất.
  10. Cuối cùng, lưu tài liệu Word bằng phương thức Save().

Mẫu mã sau đây cho biết cách tạo bảng lồng nhau trong tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách tạo bảng lồng nhau trong tài liệu Word bằng C#
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");

// Lệnh gọi này rất quan trọng để tạo một bảng lồng nhau trong bảng đầu tiên. 
// Nếu không có lệnh gọi này, các ô được chèn bên dưới sẽ được thêm vào bảng bên ngoài.
builder.EndTable();

// Di chuyển đến ô đầu tiên của bảng bên ngoài.
builder.MoveTo(cell.FirstParagraph);

// Xây dựng bảng bên trong.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Lưu tài liệu
doc.Save("NestedTable.docx");
Tạo bảng lồng nhau trong tài liệu Word bằng C#

Tạo bảng lồng nhau trong tài liệu Word bằng C#

Sao chép bảng hiện có trong tài liệu Word trong C#

Chúng ta có thể sao chép bảng hiện có trong tài liệu Word bằng cách thực hiện theo các bước bên dưới:

  1. Tải tài liệu hiện có cùng với bảng bằng lớp Tài liệu.
  2. Lấy bảng trong một đối tượng bằng phương thức GetChild(NodeType.TABLE, int, boolean).
  3. Sao chép một bảng bằng phương thức Table.Clone(True).
  4. Chèn một bảng nhân bản bằng phương thức Table.ParentNode.InsertAfter().
  5. Chèn một đoạn trống giữa các bảng bằng phương thức Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
  6. Cuối cùng, lưu tài liệu Word bằng phương thức Save().

Mẫu mã sau đây cho biết cách sao chép bảng trong tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách sao chép bảng hiện có trong tài liệu Word bằng C#
Document doc = new Document("Tables.docx");

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

// Sao chép bảng và chèn nó vào tài liệu sau bản gốc.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Chèn một đoạn văn trống giữa hai bảng,
// nếu không chúng sẽ được kết hợp thành một khi lưu, việc này liên quan đến việc xác thực tài liệu.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Sao chép bảng hiện có trong tài liệu Word trong C#

Sao chép bảng hiện có trong tài liệu Word trong C#

Tạo bảng trong tài liệu Word từ HTML

Chúng ta cũng có thể tạo bảng trong tài liệu Word bằng chuỗi HTML bằng cách thực hiện theo các bước bên dưới:

  1. Tạo một đối tượng của lớp Tài liệu.
  2. Tạo một đối tượng của lớp DocumentBuilder.
  3. Chèn chuỗi HTML của bảng vào tài liệu bằng phương thức DocumentBuilder.InsertHtml(String).
  4. Cuối cùng, lưu tài liệu bằng phương thức Document.Save().

Mẫu mã sau đây cho biết cách chèn bảng HTML vào tài liệu Word bằng C#.

// Ví dụ mã này trình bày cách chèn bảng HTML vào tài liệu Word bằng C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Lưu ý rằng AutoFitSettings không áp dụng cho các bảng được chèn từ 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");
Tạo bảng trong tài liệu Word từ HTML

Tạo bảng trong tài liệu Word từ HTML

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời để sử dụng Aspose.Words for .NET mà không bị giới hạn về đánh giá.

Phần kết luận

Trong bài viết này, chúng ta đã học cách tạo bảng trong tài liệu Word bằng C#. Chúng tôi đã khám phá nhiều phương pháp khác nhau để tạo bảng theo chương trình bằng C#. Chúng ta cũng đã thấy cách tạo các bảng lồng nhau hoặc sao chép các bảng hiện có trong tài liệu Word một cách linh hoạt. Ngoài ra, bạn có thể tìm hiểu thêm và khám phá nhiều tính năng khác của thư viện bằng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm