Table

Table class

يمثل جدولاً في مستند Word.

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

public class Table : CompositeNode

المنشئون

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

الخصائص

اسموصف
AbsoluteHorizontalDistance { get; set; }الحصول على أو تعيين موضع الجدول العائم الأفقي المطلق المحدد بواسطة خصائص الجدول، بالنقاط. القيمة الافتراضية هي 0.
AbsoluteVerticalDistance { get; set; }الحصول على أو تعيين موضع الجدول العائم الرأسي المطلق المحدد بواسطة خصائص الجدول، بالنقاط. القيمة الافتراضية هي 0.
Alignment { get; set; }يحدد كيفية محاذاة الجدول المضمن في المستند.
AllowAutoFit { get; set; }يسمح لـ Microsoft Word وAspose.Words بتغيير حجم الخلايا تلقائيًا في الجدول لتناسب محتوياتها.
AllowCellSpacing { get; set; }الحصول على خيار “السماح بالتباعد بين الخلايا” أو تعيينه.
AllowOverlap { get; }يحصل على ما إذا كان الجدول العائم يسمح للكائنات العائمة الأخرى في المستند بتداخل نطاقاته عند عرضها. القيمة الافتراضية هيحقيقي .
Bidi { get; set; }الحصول على أو تحديد ما إذا كان هذا جدولًا من اليمين إلى اليسار.
BottomPadding { get; set; }الحصول على أو تعيين مقدار المسافة (بالنقاط) لإضافتها أسفل محتويات الخلايا.
CellSpacing { get; set; }الحصول على أو تعيين مقدار المسافة (بالنقاط) بين الخلايا.
Count { get; }يحصل على عدد الأطفال المباشرين لهذه العقدة.
CustomNodeId { get; set; }يحدد معرف العقدة المخصصة.
Description { get; set; }الحصول على أو تعيين وصف لهذا الجدول. يوفر تمثيل نصي بديل للمعلومات الموجودة في الجدول.
DistanceBottom { get; set; }الحصول على المسافة بين أسفل الجدول والنص المحيط بالنقاط أو تحديدها.
DistanceLeft { get; set; }الحصول على المسافة بين يسار الجدول والنص المحيط بالنقاط أو تحديدها.
DistanceRight { get; set; }الحصول على أو تعيين المسافة بين يمين الجدول والنص المحيط بالنقاط.
DistanceTop { get; set; }الحصول على أو تعيين المسافة بين سطح الطاولة والنص المحيط بالنقاط.
virtual Document { get; }الحصول على المستند الذي تنتمي إليه هذه العقدة.
FirstChild { get; }يحصل على الطفل الأول للعقدة.
FirstRow { get; }إرجاع الأولRow العقدة في الجدول.
HasChildNodes { get; }إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية.
HorizontalAnchor { get; set; }يحصل على الكائن الأساسي الذي يجب حساب الموضع الأفقي للجدول العائم منه. القيمة الافتراضية هيColumn .
override IsComposite { get; }إرجاعحقيقي لأن هذه العقدة يمكن أن تحتوي على عقد فرعية.
LastChild { get; }يحصل على الطفل الأخير للعقدة.
LastRow { get; }إرجاع الأخيرRow العقدة في الجدول.
LeftIndent { get; set; }الحصول على أو تعيين القيمة التي تمثل المسافة البادئة اليسرى للجدول.
LeftPadding { get; set; }الحصول على أو تعيين مقدار المسافة (بالنقاط) المراد إضافتها إلى يسار محتويات الخلايا.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعTable .
ParentNode { get; }يحصل على الأصل المباشر لهذه العقدة.
PreferredWidth { get; set; }الحصول على العرض المفضل للجدول أو تعيينه.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرة.
Range { get; }إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة.
RelativeHorizontalAlignment { get; set; }الحصول على أو تعيين المحاذاة الأفقية النسبية للجدول العائم.
RelativeVerticalAlignment { get; set; }الحصول على أو تعيين المحاذاة العمودية النسبية للجدول العائم.
RightPadding { get; set; }الحصول على أو تعيين مقدار المسافة (بالنقاط) المراد إضافتها إلى يمين محتويات الخلايا.
Rows { get; }يوفر الوصول المكتوب إلى صفوف الجدول.
Style { get; set; }الحصول على أو تعيين نمط الجدول المطبق على هذا الجدول.
StyleIdentifier { get; set; }الحصول على أو تعيين معرف النمط المحلي المستقل لنمط الجدول المطبق على هذا الجدول.
StyleName { get; set; }الحصول على أو تعيين اسم نمط الجدول المطبق على هذا الجدول.
StyleOptions { get; set; }الحصول على أو تعيين إشارات البت التي تحدد كيفية تطبيق نمط الجدول على هذا الجدول.
TextWrapping { get; set; }يحصل على أو مجموعاتTextWrapping للجدول.
Title { get; set; }الحصول على عنوان هذا الجدول أو تعيينه. يوفر تمثيلاً نصيًا بديلاً للمعلومات الموجودة في الجدول.
TopPadding { get; set; }الحصول على أو تعيين مقدار المسافة (بالنقاط) لإضافتها فوق محتويات الخلايا.
VerticalAnchor { get; set; }يحصل على الكائن الأساسي الذي يجب حساب الموضع الرأسي للجدول العائم منه. القيمة الافتراضية هيMargin .

طُرق

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

ملاحظات

Tableهي عقدة على مستوى الكتلة ويمكن أن تكون تابعة للفئات المشتقة منهاStory أو InlineStory.

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

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

أمثلة

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

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");
}

يوضح كيفية إنشاء جدول منسق 2x2.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.InsertCell();
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.Write("Row 1, cell 1.");
builder.InsertCell();
builder.Write("Row 1, cell 2.");
builder.EndRow();

// أثناء إنشاء الجدول، سيطبق منشئ المستندات قيم خاصية RowFormat/CellFormat الحالية الخاصة به
// إلى الصف/الخلية الحالية التي يوجد بها المؤشر وأي صفوف/خلايا جديدة أثناء إنشائها.
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[0].CellFormat.VerticalAlignment);
Assert.AreEqual(CellVerticalAlignment.Center, table.Rows[0].Cells[1].CellFormat.VerticalAlignment);

builder.InsertCell();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 2, cell 1.");
builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 2, cell 2.");
builder.EndRow();
builder.EndTable();

// لا تتأثر الصفوف والخلايا المضافة مسبقًا بأثر رجعي بالتغييرات التي تطرأ على تنسيق المنشئ.
Assert.AreEqual(0, table.Rows[0].RowFormat.Height);
Assert.AreEqual(HeightRule.Auto, table.Rows[0].RowFormat.HeightRule);
Assert.AreEqual(100, table.Rows[1].RowFormat.Height);
Assert.AreEqual(HeightRule.Exactly, table.Rows[1].RowFormat.HeightRule);
Assert.AreEqual(TextOrientation.Upward, table.Rows[1].Cells[0].CellFormat.Orientation);
Assert.AreEqual(TextOrientation.Downward, table.Rows[1].Cells[1].CellFormat.Orientation);

doc.Save(ArtifactsDir + "DocumentBuilder.BuildTable.docx");

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

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;
}

أنظر أيضا