Row

Row class

يمثل صف الجدول.

لمعرفة المزيد، قم بزيارةالعمل مع الجداول مقالة توثيقية.

public class Row : CompositeNode

المنشئون

اسموصف
Row(DocumentBase)يقوم بتهيئة مثيل جديد لـRow الصف.

الخصائص

اسموصف
Cells { get; }يوفر الوصول المكتوب إلىCell العقد الفرعية للصف.
Count { get; }يحصل على عدد الأبناء المباشرين لهذه العقدة.
CustomNodeId { get; set; }يحدد معرف العقدة المخصص.
virtual Document { get; }يحصل على المستند الذي تنتمي إليه هذه العقدة.
FirstCell { get; }يعيد أولCell في الصف.
FirstChild { get; }يحصل على أول طفل للعقدة.
HasChildNodes { get; }إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية.
override IsComposite { get; }إرجاعحقيقي حيث يمكن لهذه العقدة أن تحتوي على عقد فرعية.
IsFirstRow { get; }صحيح إذا كان هذا هو الصف الأول في الجدول؛ وإلا فهو خطأ.
IsLastRow { get; }صحيح إذا كان هذا هو الصف الأخير في الجدول؛ وإلا يكون خطأ.
LastCell { get; }يعيد آخرCell في الصف.
LastChild { get; }يحصل على آخر طفل للعقدة.
NextRow { get; }يحصل على التاليRow العقدة.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعRow .
ParentNode { get; }يحصل على الوالد المباشر لهذه العقدة.
ParentTable { get; }يعيد الجدول الرئيسي المباشر للصف.
PreviousRow { get; }يحصل على السابقRow العقدة.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرةً.
Range { get; }يعيدRangeالكائن الذي يمثل الجزء من المستند الموجود في هذه العقدة.
RowFormat { get; }يوفر الوصول إلى خصائص التنسيق الخاصة بالصف.

طُرق

اسموصف
override Accept(DocumentVisitor)يقبل زائرًا.
override AcceptEnd(DocumentVisitor)يقبل زائرًا لزيارة نهاية الصف.
override AcceptStart(DocumentVisitor)يقبل زائرًا لزيارة بداية الصف.
AppendChild<T>(T)يضيف العقدة المحددة إلى نهاية قائمة العقد الفرعية لهذه العقدة.
Clone(bool)ينشئ نسخة مكررة من العقدة.
CreateNavigator()ينشئ متصفحًا يمكن استخدامه للتنقل بين العقد وقراءتها.
EnsureMinimum()إذا كانRow لا يحتوي على خلايا، بل ينشئ ويضيف واحدةCell .
GetAncestor(NodeType)يحصل على السلف الأول للعنصر المحددNodeType .
GetAncestor(Type)يحصل على السلف الأول لنوع الكائن المحدد.
GetChild(NodeType, int, bool)يعيد عقدة فرعية رقم N تطابق النوع المحدد.
GetChildNodes(NodeType, bool)يعيد مجموعة حية من العقد الفرعية التي تطابق النوع المحدد.
GetEnumerator()يوفر الدعم لكل تكرار للأسلوب على العقد الفرعية لهذه العقدة.
override GetText()يحصل على نص جميع الخلايا في هذا الصف بما في ذلك حرف نهاية الصف.
IndexOf(Node)يعيد مؤشر العقدة الفرعية المحددة في مجموعة العقد الفرعية.
InsertAfter<T>(T, Node)يقوم بإدراج العقدة المحددة فورًا بعد عقدة المرجع المحددة.
InsertBefore<T>(T, Node)يقوم بإدراج العقدة المحددة مباشرة قبل عقدة المرجع المحددة.
NextPreOrder(Node)يحصل على العقدة التالية وفقًا لخوارزمية عبور شجرة الترتيب المسبق.
PrependChild<T>(T)يضيف العقدة المحددة إلى بداية قائمة العقد الفرعية لهذه العقدة.
PreviousPreOrder(Node)يحصل على العقدة السابقة وفقًا لخوارزمية عبور شجرة الترتيب المسبق.
Remove()يزيل نفسه من الأصل.
RemoveAllChildren()يزيل جميع العقد الفرعية للعقدة الحالية.
RemoveChild<T>(T)يزيل العقدة الفرعية المحددة.
RemoveSmartTags()يزيل الكلSmartTag العقد المنحدرة من العقدة الحالية.
SelectNodes(string)يحدد قائمة العقد المطابقة لتعبير XPath.
SelectSingleNode(string)يحدد الأولNode الذي يتطابق مع تعبير XPath.
ToString(SaveFormat)يصدر محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions)يقوم بتصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.

ملاحظات

Row لا يمكن أن يكون إلا طفلاً لـTable.

Row يمكن أن تحتوي على واحد أو أكثرCell العقد.

يجب أن يحتوي الصف الصحيح الأدنى على صف واحد على الأقلCell.

أمثلة

يوضح كيفية إنشاء جدول.

Document doc = new Document();
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// تحتوي الجداول على صفوف تحتوي على خلايا، والتي قد تحتوي على فقرات
// مع العناصر النموذجية مثل التشغيلات والأشكال وحتى الجداول الأخرى.
// سيؤدي استدعاء طريقة "EnsureMinimum" على جدول إلى ضمان ذلك
//يحتوي الجدول على صف واحد وخلية وفقرة واحدة على الأقل.
Row firstRow = new Row(doc);
table.AppendChild(firstRow);

Cell firstCell = new Cell(doc);
firstRow.AppendChild(firstCell);

Paragraph paragraph = new Paragraph(doc);
firstCell.AppendChild(paragraph);

//أضف نصًا إلى الخلية الأولى في الصف الأول من الجدول.
Run run = new Run(doc, "Hello world!");
paragraph.AppendChild(run);

doc.Save(ArtifactsDir + "Table.CreateTable.docx");

يوضح كيفية تكرار جميع الجداول في المستند وطباعة محتويات كل خلية.

Document doc = new Document(MyDir + "Tables.docx");
TableCollection tables = doc.FirstSection.Body.Tables;

Assert.AreEqual(2, tables.ToArray().Length);

for (int i = 0; i < tables.Count; i++)
{
    Console.WriteLine($"Start of Table {i}");

    RowCollection rows = tables[i].Rows;

    // يمكننا استخدام طريقة "ToArray" على مجموعة صفوف لاستنساخها في مصفوفة.
    Assert.AreEqual(rows, rows.ToArray());
    Assert.AreNotSame(rows, rows.ToArray());

    for (int j = 0; j < rows.Count; j++)
    {
        Console.WriteLine($"\tStart of Row {j}");

        CellCollection cells = rows[j].Cells;

        // يمكننا استخدام طريقة "ToArray" على مجموعة خلايا لاستنساخها في مصفوفة.
        Assert.AreEqual(cells, cells.ToArray());
        Assert.AreNotSame(cells, cells.ToArray());

        for (int k = 0; k < cells.Count; k++)
        {
            string cellText = cells[k].ToString(SaveFormat.Text).Trim();
            Console.WriteLine($"\t\tContents of Cell:{k} = \"{cellText}\"");
        }

        Console.WriteLine($"\tEnd of Row {j}");
    }

    Console.WriteLine($"End of Table {i}\n");
}

يوضح كيفية إنشاء جدول متداخل دون استخدام منشئ المستندات.

public void CreateNestedTable()
{
    Document doc = new Document();

    // قم بإنشاء الجدول الخارجي بثلاثة صفوف وأربعة أعمدة، ثم قم بإضافته إلى المستند.
    Table outerTable = CreateTable(doc, 3, 4, "Outer Table");
    doc.FirstSection.Body.AppendChild(outerTable);

    // قم بإنشاء جدول آخر يحتوي على صفين وعمودين ثم أدخله في الخلية الأولى للجدول الأول.
    Table innerTable = CreateTable(doc, 2, 2, "Inner Table");
    outerTable.FirstRow.FirstCell.AppendChild(innerTable);

    doc.Save(ArtifactsDir + "Table.CreateNestedTable.docx");
}

/// <summary>
/// إنشاء جدول جديد في المستند بالأبعاد والنص المحددين في كل خلية.
/// </summary>
private static Table CreateTable(Document doc, int rowCount, int cellCount, string cellText)
{
    Table table = new Table(doc);

    for (int rowId = 1; rowId <= rowCount; rowId++)
    {
        Row row = new Row(doc);
        table.AppendChild(row);

        for (int cellId = 1; cellId <= cellCount; cellId++)
        {
            Cell cell = new Cell(doc);
            cell.AppendChild(new Paragraph(doc));
            cell.FirstParagraph.AppendChild(new Run(doc, cellText));

            row.AppendChild(cell);
        }
    }

    //يمكنك استخدام خصائص "العنوان" و"الوصف" لإضافة عنوان ووصف على التوالي إلى الجدول الخاص بك.
    // يجب أن يحتوي الجدول على صف واحد على الأقل قبل أن نتمكن من استخدام هذه الخصائص.
    // هذه الخصائص مفيدة للمستندات .docx المتوافقة مع ISO / IEC 29500 (انظر فئة OoxmlCompliance).
    // إذا قمنا بحفظ المستند بتنسيقات ما قبل ISO/IEC 29500، فإن Microsoft Word يتجاهل هذه الخصائص.
    table.Title = "Aspose table title";
    table.Description = "Aspose table description";

    return table;
}

أنظر أيضا