Thực hiện hợp nhất ngang hoặc hợp nhất dọc của một hoặc nhiều ô bảng trong các tệp Docs/Docx. FileFormat.words cung cấp các phương thức để làm việc với các bảng trong các tệp Word.

Cách hợp nhất các ô bảng trong tài liệu từ

Tổng quan

Phiên bản mới hơn của [FileFormat.words] 2 cung cấp các phương thức tiếp theo để làm việc với các bảng trong tài liệu [Word] 3. [Phiên bản] 4 trước đó chứa các phương thức để tạo, chỉnh sửa và đọc thuộc tính bảng trong khi phiên bản mới nhất cho phép người dùng hợp nhất các ô bảng trong các tệp docs/docx. Ngoài ra, bạn có thể thực hiện Hợp nhất ngang hoặc hợp nhất dọc của các ô bảng bằng nguồn mở .NET [Thư viện] 5. Hơn nữa, đó là một thư viện dễ sử dụng mà các phương thức không phức tạp và không cần bất kỳ sự phụ thuộc của bên thứ ba nào. Trong bài đăng trên blog này, chúng tôi sẽ học cách hợp nhất các ô bảng trong các tài liệu từ. Vì vậy, hãy để bắt đầu quá trình cài đặt và bắt đầu viết mã nguồn. Chúng tôi sẽ trình bày các tiêu đề sau trong bài viết này:

  • [Cài đặt API của Trình tạo bảng] 6
  • [Cách hợp nhất các ô bảng trong tài liệu từ] 7

Cài đặt API Trình tạo bảng

Vui lòng truy cập [Liên kết] 8 để biết thông tin chi tiết về cài đặt. Chỉ cần giới thiệu lại, quá trình cài đặt API .NET miễn phí này tương đối dễ dàng. Chà, bạn có thể tải xuống [Gói Nuget] 9 hoặc chạy lệnh sau trong Trình quản lý gói Nuget:

Install-Package FileFormat.Words

Cách hợp nhất các ô bảng trong tài liệu từ

Chúng tôi sẽ viết một đoạn mã để đạt được sự hợp nhất ngang và hợp nhất dọc của các ô bảng. Với mục đích đó, chúng tôi sẽ sử dụng các lớp và phương pháp tiếp xúc. Vui lòng truy cập hướng dẫn này để tìm hiểu cách tạo bảng trong tài liệu Word bằng FileFormat.words. Vì vậy, chúng tôi sẽ sử dụng các lớp và phương thức tiếp theo trong đoạn mã của chúng tôi:

  • Tạo một đối tượng của lớp [verticalmerge] 10.
  • [Mergerestart] 11 Thuộc tính được sử dụng để chỉ định rằng phần tử sẽ bắt đầu một vùng được hợp nhất theo chiều dọc mới trong bảng.
  • Gọi phương thức [append] 12 để gắn đối tượng VerticalMerge với đối tượng TBLCellProps.
  • Khởi tạo một ví dụ của lớp [Horizontalmerge] 13.
  • [Mergerestart] 14 Thuộc tính được sử dụng để chỉ định rằng phần tử sẽ bắt đầu một vùng được hợp nhất theo chiều ngang mới trong bảng.
  • Gọi phương thức [append] 15 để gắn đối tượng Horizontalmerge với đối tượng TBLCellProps.
  • [MergeContinue] 16 thuộc tính được sử dụng để chỉ định rằng phần tử sẽ kết thúc một vùng được hợp nhất theo chiều ngang trong bảng.
  • [MergeContinue] 17 Thuộc tính được sử dụng để chỉ định rằng phần tử sẽ kết thúc một vùng được hợp nhất theo chiều dọc trong bảng.
using FileFormat.Words;
using FileFormat.Words.Table;
namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize an instance of the Document class.
            using (Document doc = new Document())
            {
                // Instantiate the constructor of the Body class with the Document class object.
                Body body = new Body(doc);
                // Create an object of the Table class.
                Table table = new Table();
                // Initialize the constructor of the TopBorder class to set the border of the top side of the table.
                TopBorder topBorder = new TopBorder();
                // Invoke the basicBlackSquares_border method to set the border style and border line width.
                topBorder.basicBlackSquares_border(20);
                // To set the border of the bottom side of the table.
                BottomBorder bottomBorder = new BottomBorder();
                bottomBorder.basicBlackSquares_border(20);
                // To set the border of the right side of the table.
                RightBorder rightBorder = new RightBorder();
                rightBorder.basicBlackSquares_border(20);
                // To set the border of the left side of the table.
                LeftBorder leftBorder = new LeftBorder();
                leftBorder.basicBlackSquares_border(20);
                // To set the inside vertical border of the table.
                InsideVerticalBorder insideVerticalBorder = new InsideVerticalBorder();
                insideVerticalBorder.basicBlackSquares_border(20);
                // To set the inside vehorizontalrtical border of the table.
                InsideHorizontalBorder insideHorizontalBorder = new InsideHorizontalBorder();
                insideHorizontalBorder.basicBlackSquares_border(20);
                // Create an instance of the TableBorders class. 
                TableBorders tableBorders = new TableBorders();
                // Append the object of the TopBorder class to the object of the TableBorders class.
                tableBorders.AppendTopBorder(topBorder);
                // Append the object of the BottomBorder class.
                tableBorders.AppendBottomBorder(bottomBorder);
                // Append the object of the RightBorder class.
                tableBorders.AppendRightBorder(rightBorder);
                // Append the object of the LeftBorder class.
                tableBorders.AppendLeftBorder(leftBorder);
                // Append the object of the InsideVerticalBorder class.
                tableBorders.AppendInsideVerticalBorder(insideVerticalBorder);
                // Append the object of the InsideHorizontalBorder class.
                tableBorders.AppendInsideHorizontalBorder(insideHorizontalBorder);

                // Initialize an instance of the TableProperties class.
                TableProperties tblProp = new TableProperties();
                // Invoke the Append method to attach the object of the TableBorders class.
                tblProp.Append(tableBorders);
                // Create an instance of the TableJustification class 
                TableJustification tableJustification = new TableJustification();
                // Call the AlignLeft method to position the table on left side of the document.
                tableJustification.AlignLeft();
                // Invoke the Append method to attach the tableJustification object to the tblProp object.
                tblProp.Append(tableJustification);

                // The AppendChild method will attach the table properties to the table.
                table.AppendChild(tblProp);

                // Create an object of the TableRow class to create a table row.
                TableRow tableRow = new TableRow();
                TableRow tableRow2 = new TableRow();

                // Initialize an instance of the TableCell class.
                TableCell tableCell = new TableCell();
                Paragraph para = new Paragraph();
                Run run = new Run();

                // Set the header of the first column by invoking the TableHeaders method.
                table.TableHeaders("Name");
                run.Text = "Mustafa";
                para.AppendChild(run);
                // Call the Append method to add text inside the table cell.
                tableCell.Append(para);

                // Create an object of the TableCellProperties table properties 
                TableCellProperties tblCellProps = new TableCellProperties();

                // Set the width of table cell by initializing the object of the TableCellWidth class and append to tblCellProps object.
                tblCellProps.Append(new TableCellWidth("2400"));
                // Append method will attach the tblCellProps object with the object of the TableCell class.
                tableCell.Append(tblCellProps);

                TableCell tableCell2 = new TableCell();
                Paragraph para2 = new Paragraph();
                Run run2 = new Run();

                // set the header of the second column
                table.TableHeaders("Nationality");
                run2.Text = "Pakistani";
                para2.AppendChild(run2);
                tableCell2.Append(para2);

                TableCellProperties tblCellProps2 = new TableCellProperties();
                // Create an object of the VerticalMerge class. 
                VerticalMerge verticalMerge = new VerticalMerge();
                // MergeRestart property is used to specify that the element shall start a new vertically merged region in the table.
                verticalMerge.MergeRestart = true;
                // Invoke the Append method to attach the verticalMerge object with the tblCellProps object.
                tblCellProps.Append(verticalMerge);

                // Instantiate an instance of the HorizontalMerge class. 
                HorizontalMerge horizontalMerge = new HorizontalMerge();
                // MergeRestart property is used to specify that the element shall start a new horizontally merged region in the table.
                horizontalMerge.MergeRestart = true;
                // Call the Append method to attach the horizontalMerge object with the tblCellProps object.
                tblCellProps2.Append(horizontalMerge);

                tblCellProps2.Append(new TableCellWidth("1400"));
                tableCell2.Append(tblCellProps2);

                TableCell tableCell3 = new TableCell();
                Paragraph para3 = new Paragraph();
                Run run3 = new Run();
                table.TableHeaders("Age");
                run3.Text = "30";
                para3.AppendChild(run3);
                tableCell3.Append(para3);

                HorizontalMerge horizontalMerge1 = new HorizontalMerge();
                // MergeContinue property is used to specify that the element shall end a horizontally merged region in the table.
                horizontalMerge1.MergeContinue = true;
                TableCellProperties tblCellProps3 = new TableCellProperties();
                tblCellProps3.Append(new TableCellWidth("1400"));
                tblCellProps3.Append(horizontalMerge1);

                tableCell3.Append(tblCellProps3);
                // Call the Append method to add cells into table row.
                tableRow.Append(tableCell);
                tableRow.Append(tableCell2);
                tableRow.Append(tableCell3);

                // create table cell
                TableCell _tableCell = new TableCell();
                Paragraph _para = new Paragraph();
                Run _run = new Run();

                _run.Text = "sultan";
                _para.AppendChild(_run);
                _tableCell.Append(_para);

                TableCellProperties tblCellProps1_ = new TableCellProperties();
                VerticalMerge verticalMerge2 = new VerticalMerge();
                // MergeContinue property is used to specify that the element shall end a vertically merged region in the table.
                verticalMerge2.MergeContinue = true;
                tblCellProps1_.Append(verticalMerge2);
                tblCellProps1_.Append(new TableCellWidth("2400"));
                _tableCell.Append(tblCellProps1_);


                TableCell _tableCell2 = new TableCell();
                Paragraph _para2 = new Paragraph();
                Run _run2 = new Run();

                _run2.Text = "British";
                _para2.AppendChild(_run2);
                _tableCell2.Append(_para2);

                TableCellProperties tblCellProps2_ = new TableCellProperties();
                tblCellProps2_.Append(new TableCellWidth("1400"));
                _tableCell2.Append(tblCellProps2_);

                TableCell _tableCell3 = new TableCell();
                Paragraph _para3 = new Paragraph();
                Run _run3 = new Run();

                _run3.Text = "2";
                _para3.AppendChild(_run3);
                _tableCell3.Append(_para3);

                TableCellProperties tblCellProps3_ = new TableCellProperties();
                tblCellProps3_.Append(new TableCellWidth("1400"));
                _tableCell3.Append(tblCellProps3_);

                tableRow2.Append(_tableCell);
                tableRow2.Append(_tableCell2);
                tableRow2.Append(_tableCell3);
                // Call the Append method to add the rows into table.
                table.Append(tableRow);
                table.Append(tableRow2);
                // The AppendChild method will add the table to the body of the document.
                body.AppendChild(table);
                // The Save method will save the Word document onto the disk.
                doc.Save("/Users/Mustafa/Desktop/Docs.docx");
            }

        }

    }
}

Sao chép và dán phân đoạn mã trên vào tệp chính của bạn và chạy. Bạn sẽ thấy tệp Word được tạo với nội dung được hiển thị trong hình dưới đây:

Hợp nhất các ô bảng

Kết luận

Chúng tôi đang kết thúc bài đăng trên blog này ở đây với hy vọng rằng bạn đã học được cách ** hợp nhất các ô bảng trong tài liệu từ ** được lập trình. Ngoài ra, chúng tôi cũng đã viết mã nguồn để thực hiện hợp nhất ngang và hợp nhất dọc của các ô bảng. Do đó, bạn có thể chọn cho API Trình tạo bảng .NET ** trên bộ nguồn mở này để tự động hóa tự động hóa tệp Word. Cuối cùng, đừng quên truy cập [tài liệu] 19 để tìm hiểu về các lớp và phương pháp tiếp theo. Cuối cùng, [FileFormat.com] 20 luôn luôn viết các bài đăng trên blog hướng dẫn về các chủ đề thú vị. Vì vậy, xin vui lòng giữ liên lạc để cập nhật thường xuyên. Hơn nữa, bạn có thể theo dõi chúng tôi trên các nền tảng truyền thông xã hội của chúng tôi, bao gồm [Facebook] 21, [LinkedIn] 22, và [Twitter] 23.

Đóng góp

Vì [FileFormat.words cho .NET] 5 là một dự án nguồn mở và có sẵn trên [GitHub] 24. Vì vậy, sự đóng góp từ cộng đồng được đánh giá cao.

Đặt câu hỏi

Bạn có thể cho chúng tôi biết về các câu hỏi hoặc câu hỏi của bạn trên [Diễn đàn] của chúng tôi 25.

faqs

** Làm cách nào để hợp nhất các ô trong một tài liệu từ? ** Bạn có thể hợp nhất các ô bảng bằng cách sử dụng [verticalmerge] 10 và [ngang] 13 các lớp. ** Làm cách nào để hợp nhất các tế bào trong một bảng trong tài liệu? ** Vui lòng theo dõi [liên kết] 7 để tìm hiểu các bước và đoạn mã để đạt được chức năng này.

Xem thêm

  • [Cách tạo tài liệu Word trong C# bằng FileFormat.words] 8
  • [Cách chỉnh sửa tài liệu Word trong C# bằng FileFormat.words] 26
  • [Cách tạo bảng trong các tệp Word bằng FileFormat.words] 27