Table

Table class

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

public class Table : CompositeNode

المنشئون

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

الخصائص

اسم وصف
AbsoluteHorizontalDistance { get; set; } الحصول على أو تعيين موضع الجدول العائم الأفقي المطلق المحدد بواسطة خصائص الجدول ، بالنقاط . القيمة الافتراضية هي 0.
AbsoluteVerticalDistance { get; set; } الحصول على أو تعيين موضع الجدول العائم العمودي المطلق المحدد بواسطة خصائص الجدول ، بالنقاط . القيمة الافتراضية هي 0.
Alignment { get; set; } يحدد كيفية محاذاة الجدول المضمن في المستند.
AllowAutoFit { get; set; } يسمح لـ Microsoft Word و Aspose.Words بتغيير حجم الخلايا تلقائيًا في جدول لتلائم محتوياتها .
AllowCellSpacing { get; set; } الحصول على أو تعيين خيار “السماح بالتباعد بين الخلايا”.
AllowOverlap { get; } التعرف على ما إذا كان الجدول العائم سيسمح للكائنات العائمة الأخرى في document بتداخل نطاقاتها عند عرضها. القيمة الافتراضية هيحقيقي .
Bidi { get; set; } الحصول على أو تحديد ما إذا كان هذا جدولًا من اليمين إلى اليسار.
BottomPadding { get; set; } الحصول على أو تحديد مقدار المساحة (بالنقاط) لإضافتها أسفل محتويات الخلايا.
CellSpacing { get; set; } الحصول على أو تحديد مقدار المسافة (بالنقاط) بين الخلايا.
ChildNodes { get; } يحصل على جميع العقد الفرعية الفورية لهذه العقدة.
Count { get; } الحصول على عدد الأطفال المباشرين لهذه العقدة.
CustomNodeId { get; set; } يحدد معرف العقدة المخصص .
Description { get; set; } الحصول على وصف لهذا الجدول أو تعيينه . يوفر تمثيلًا نصيًا بديلاً للمعلومات الواردة في الجدول.
DistanceBottom { get; } تحصل على المسافة بين أسفل الجدول والنص المحيط بالنقاط .
DistanceLeft { get; } تحصل على المسافة بين يسار الجدول والنص المحيط بالنقاط .
DistanceRight { get; } تحصل على المسافة بين الجدول الأيمن والنص المحيط بالنقاط .
DistanceTop { get; } تحصل على المسافة بين سطح الجدول والنص المحيط بالنقاط .
virtual Document { get; } الحصول على المستند الذي تنتمي إليه هذه العقدة .
FirstChild { get; } الحصول على الطفل الأول للعقدة .
FirstRow { get; } إرجاع أول صف عقدة في الجدول .
HasChildNodes { get; } إرجاع صحيح إذا كانت هذه العقدة بها أي عقد فرعية.
HorizontalAnchor { get; set; } الحصول على الكائن الأساسي الذي يجب من خلاله حساب الموضع الأفقي للجدول العائم. القيمة الافتراضية هيColumn .
override IsComposite { get; } إرجاع صحيح لأن هذه العقدة يمكن أن تحتوي على عقد فرعية.
LastChild { get; } الحصول على آخر تابع للعقدة .
LastRow { get; } إرجاع الأخير صف عقدة في الجدول .
LeftIndent { get; set; } الحصول على أو تعيين القيمة التي تمثل المسافة البادئة اليسرى للجدول.
LeftPadding { get; set; } الحصول على أو تعيين مقدار المساحة (بالنقاط) لإضافتها إلى يسار محتويات الخلايا.
NextSibling { get; } يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; } عوائد NodeType. جدول .
ParentNode { get; } الحصول على الأصل المباشر لهذه العقدة.
PreferredWidth { get; set; } الحصول على أو تحديد العرض المفضل للجدول.
PreviousSibling { get; } يحصل على العقدة التي تسبق هذه العقدة مباشرة.
Range { get; } إرجاع أ نطاق الكائن الذي يمثل جزء المستند الموجود في هذه العقدة.
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() محجوز لاستخدام النظام. 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.
SetBorder(BorderType, LineStyle, double, Color, bool) يضبط حد الجدول المحدد على نمط الخط والعرض واللون المحدد.
SetBorders(LineStyle, double, Color) تعيين كافة حدود الجدول على نمط الخط والعرض واللون المحدد.
SetShading(TextureIndex, Color, Color) يضبط التظليل على القيم المحددة في الجدول بأكمله.
ToString(SaveFormat) يصدر محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions) يصدر محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.

ملاحظات

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

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

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

أمثلة

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

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

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

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

أنظر أيضا