قم بإجراء دمج أفقي أو دمج عمودي لواحد أو أكثر من خلايا الجدول في ملفات docs/docx. يوفر FileFormat.words طرقًا للعمل مع الجداول في ملفات الكلمات.

كيفية دمج خلايا الجدول في مستندات الكلمات

نظرة عامة

يوفر الإصدار الأحدث من [fileformat.words] 2 طرقًا أخرى للعمل مع الجداول في [Word] 3 المستندات. يحتوي [الإصدار] السابق 4 على طرق لإنشاء خصائص الجدول وتحريرها وقراءتها ، بينما يتيح أحدث إصدار للمستخدمين دمج خلايا الجدول برمجيًا في ملفات المستندات/docx. بالإضافة إلى ذلك ، يمكنك القيام ** دمج أفقي أو دمج عمودي** من خلايا الجدول باستخدام هذا .NET مفتوح المصدر [Library] 5. علاوة على ذلك ، فهي مكتبة سهلة الاستخدام ليست أساليبها معقدة ولا تحتاج إلى أي تبعية لجهة خارجية. في منشور المدونة هذا ، سوف نتعلم كيفية دمج خلايا الجدول في مستندات الكلمات. لذلك ، دعنا نبدأ عملية التثبيت وتبدأ في كتابة رمز المصدر. سنغطي العناوين التالية في هذه المقالة:

  • [تثبيت API مولد الجدول] 6
  • [كيفية دمج خلايا الجدول في مستندات الكلمات] 7

تثبيت API مولد الجدول

يرجى زيارة هذا [الرابط] 8 للحصول على معلومات مفصلة حول التثبيت. فقط لإعادة السحب ، فإن عملية التثبيت الخاصة بـ .NET API مجانية سهلة نسبيًا. حسنًا ، يمكنك إما تنزيل [Nuget Package] 9 أو تشغيل الأمر التالي في مدير حزمة Nuget:

Install-Package FileFormat.Words

كيفية دمج خلايا الجدول في مستندات الكلمات

سنكتب مقتطف رمز لتحقيق دمج أفقي ودمج عمودي لخلايا الجدول. لهذا الغرض ، سوف نستخدم الفئات والأساليب المكشوفة. يرجى زيارة هذا الدليل لمعرفة كيفية إنشاء جدول في مستند Word باستخدام FileFormat.words. لذلك ، سوف نستخدم المزيد من الفئات والأساليب في مقتطف الكود الخاص بنا:

  • إنشاء كائن من الفئة [verticalmerge] 10.
  • [MERGERESTART] 11 يتم استخدام خاصية لتحديد أن العنصر يجب أن يبدأ منطقة جديدة تم دمجها رأسياً في الجدول.
  • استدعاء طريقة [إلحاق] 12 لإرفاق كائن verticalmerge بكائن tblCellProps.
  • مثيل مثيل لفئة [horizontalmerge] 13.
  • [MERGERESTART] 14 يتم استخدام خاصية لتحديد أن العنصر يجب أن يبدأ المنطقة الجديدة المدمجة أفقيًا في الجدول.
  • استدعاء طريقة [إلحاق] 15 لإرفاق كائن Horizontalmerge مع كائن TblCellProps.
  • [MergeContinue] 16 يتم استخدام خاصية لتحديد أن العنصر يجب أن ينهي المنطقة المدمجة أفقيًا في الجدول.
  • [MergeContinue] 17 يتم استخدام خاصية لتحديد أن العنصر يجب أن ينهي المنطقة المدمجة رأسياً في الجدول.
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");
            }

        }

    }
}

انسخ ولصق قطاع الرمز أعلاه في ملفك الرئيسي وتشغيله. سترى ملف الكلمة الذي تم إنشاؤه مع المحتوى الموضح في الصورة أدناه:

دمج خلايا الجدول

الخاتمة

ننهي منشور المدونة هذا هنا على أمل أن تكون قد تعلمت كيفية ** دمج خلايا الجدول في مستندات Word ** برمجيًا. بالإضافة إلى ذلك ، كتبنا أيضًا رمز المصدر لتنفيذ الدمج الأفقي والاندماج الرأسي لخلايا الجدول. لذلك ، يمكنك اختيار هذا Open-Source .NET ** Table Generator API ** لأتمتة أتمتة ملف الكلمات. في النهاية ، لا تنس زيارة [الوثائق] 19 للتعرف على المزيد من الفصول والأساليب. أخيرًا ، [FileFormat.com] 20 يكتب باستمرار منشورات المدونة التعليمية حول مواضيع مثيرة للاهتمام. لذا ، يرجى البقاء على اتصال للحصول على تحديثات منتظمة. علاوة على ذلك ، يمكنك متابعتنا على منصات الوسائط الاجتماعية الخاصة بنا ، بما في ذلك [Facebook] 21 و [LinkedIn] 22 و [Twitter] 23.

المساهمة

نظرًا لأن [fileformat.words for .NET] 5 هو مشروع مفتوح المصدر وهو متاح على [github] 24. لذلك ، فإن مساهمة المجتمع موضع تقدير كبير.

اطرح سؤالاً

يمكنك إخبارنا بأسئلتك أو استفساراتك في [المنتدى] 25.

الأسئلة الشائعة

كيف يمكنني دمج الخلايا في وثيقة كلمة؟ يمكنك دمج خلايا الجدول باستخدام [verticalmerge] 10 و [Fresontalmerge] 13. كيف يمكنني دمج الخلايا في جدول في المستند؟ يرجى اتباع هذا [الرابط] 7 لمعرفة الخطوات ومقتطف الكود لتحقيق هذه الوظيفة.

انظر أيضًا

  • [كيفية إنشاء مستند كلمة في C# باستخدام fileformat.words] 8
  • [كيفية تحرير مستند كلمة في C# باستخدام fileformat.words] 26
  • [كيفية عمل جدول في ملفات الكلمات باستخدام fileformat.words] 27