Row

Row class

يمثل صف جدول .

public class Row : CompositeNode

المنشئون

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

الخصائص

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

طُرق

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

ملاحظات

صف يمكن أن يكون فقط طفلًا من الطاولة.

صف يمكن أن تحتوي على واحد أو أكثر خلية العقد.

الحد الأدنى من الصف الصالح يحتاج إلى واحد على الأقل خلية.

أمثلة

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

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

// تحتوي الجداول على صفوف تحتوي على خلايا قد تحتوي على فقرات
// مع عناصر نموذجية مثل المسارات والأشكال وحتى الجداول الأخرى.
// استدعاء طريقة "ضمان الحد الأدنى" على الطاولة سيضمن ذلك
// يحتوي الجدول على صف وخلية وفقرة واحدة على الأقل.
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;
}

أنظر أيضا