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)يقبل زائرًا.
override AcceptEnd(DocumentVisitor)يقبل زائرًا لزيارة نهاية الجدول.
override AcceptStart(DocumentVisitor)يقبل زائرًا لزيارة بداية الجدول.
AppendChild<T>(T)يضيف العقدة المحددة إلى نهاية قائمة العقد الفرعية لهذه العقدة.
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<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.
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;
}

أنظر أيضا