تطبيق نمط الجدول

يحدد نمط الجدول مجموعة من التنسيقات التي يمكن تطبيقها بسهولة على الجدول. يمكن تعيين التنسيقات مثل الحدود والتظليل والمحاذاة والخط في نمط جدول وتطبيقها على العديد من الجداول للحصول على مظهر متناسق.

يدعم Aspose.Words تطبيق نمط الجدول على الجدول وكذلك قراءة خصائص أي نمط جدول. يتم الاحتفاظ بأنماط الجدول أثناء التحميل والحفظ بالطرق التالية:

  • يتم الاحتفاظ بأنماط الجدول بتنسيقات DOCX وWordML عند التحميل والحفظ بهذه التنسيقات
  • يتم الاحتفاظ بأنماط الجدول عند التحميل والحفظ بتنسيق DOC (ولكن ليس بأي تنسيق آخر)
  • عند التصدير إلى تنسيقات أخرى، أو العرض أو الطباعة، يتم توسيع أنماط الجدول لتشمل التنسيق المباشر في الجدول، بحيث يتم الاحتفاظ بجميع التنسيقات

إنشاء نمط الجدول

يمكن للمستخدم إنشاء نمط جديد وإضافته إلى مجموعة الأنماط. يتم استخدام طريقة Add لإنشاء نمط جدول جديد.

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء نمط جدول جديد محدد من قبل المستخدم:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Name");
builder.InsertCell();
builder.Write("Value");
builder.EndRow();
builder.InsertCell();
builder.InsertCell();
builder.EndTable();
TableStyle tableStyle = (TableStyle) doc.Styles.Add(StyleType.Table, "MyTableStyle1");
tableStyle.Borders.LineStyle = LineStyle.Double;
tableStyle.Borders.LineWidth = 1;
tableStyle.LeftPadding = 18;
tableStyle.RightPadding = 18;
tableStyle.TopPadding = 12;
tableStyle.BottomPadding = 12;
table.Style = tableStyle;
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.CreateTableStyle.docx");

انسخ نمط جدول موجود

إذا لزم الأمر، يمكنك نسخ نمط جدول موجود بالفعل في مستند معين إلى مجموعة الأنماط الخاصة بك باستخدام طريقة AddCopy.

من المهم معرفة أنه مع هذا النسخ، يتم أيضًا نسخ الأنماط المرتبطة.

يوضح مثال التعليمات البرمجية التالي كيفية استيراد نمط من مستند إلى مستند آخر:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document srcDoc = new Document();
// Create a custom style for the source document.
Style srcStyle = srcDoc.Styles.Add(StyleType.Paragraph, "MyStyle");
srcStyle.Font.Color = Color.Red;
// Import the source document's custom style into the destination document.
Document dstDoc = new Document();
Style newStyle = dstDoc.Styles.AddCopy(srcStyle);
// The imported style has an appearance identical to its source style.
Assert.AreEqual("MyStyle", newStyle.Name);
Assert.AreEqual(Color.Red.ToArgb(), newStyle.Font.Color.ToArgb());

تطبيق نمط الجدول الموجود

يوفر Aspose.Words ملف TableStyle موروث من فئة Style. يسهل TableStyle للمستخدم تطبيق خيارات أنماط مختلفة مثل التظليل والحشو والمسافات البادئة وCellSpacing وFont وما إلى ذلك.

بالإضافة إلى ذلك، يوفر Aspose.Words فئة StyleCollection وبعض خصائص فئة Table لتحديد نمط الجدول الذي سنعمل معه: Style، وStyleIdentifier، وStyleName، وStyleOptions.

يوفر Aspose.Words أيضًا فئة ConditionalStyle التي تمثل التنسيق الخاص المطبق على بعض مناطق الجدول بنمط جدول معين، وConditionalStyleCollection الذي يمثل مجموعة من كائنات ConditionalStyle. تحتوي هذه المجموعة على مجموعة دائمة من العناصر تمثل عنصرًا واحدًا لكل قيمة من نوع تعداد ConditionalStyleType. يحدد تعداد ConditionalStyleType جميع مناطق الجدول الممكنة التي يمكن تعريف التنسيق الشرطي لها في نمط الجدول.

في هذه الحالة، يمكن تعريف التنسيق الشرطي لجميع مناطق الجدول المحتملة المحددة ضمن نوع التعداد ConditionalStyleType.

يوضح مثال التعليمات البرمجية التالي كيفية تحديد التنسيق الشرطي لصف رأس الجدول:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Name");
builder.InsertCell();
builder.Write("Value");
builder.EndRow();
builder.InsertCell();
builder.InsertCell();
builder.EndTable();
TableStyle tableStyle = (TableStyle) doc.Styles.Add(StyleType.Table, "MyTableStyle1");
tableStyle.ConditionalStyles.FirstRow.Shading.BackgroundPatternColor = Color.GreenYellow;
tableStyle.ConditionalStyles.FirstRow.Shading.Texture = TextureIndex.TextureNone;
table.Style = tableStyle;
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.DefineConditionalFormatting.docx");

يمكنك أيضًا اختيار أجزاء الجدول التي سيتم تطبيق الأنماط عليها، مثل العمود الأول والعمود الأخير والصفوف ذات النطاقات. وهي مدرجة في تعداد TableStyleOptions ويتم تطبيقها من خلال خاصية StyleOptions. يسمح تعداد TableStyleOptions بدمج هذه الميزات على مستوى البت.

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء جدول جديد باستخدام نمط الجدول المطبق:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Table table = builder.StartTable();
// We must insert at least one row first before setting any table formatting.
builder.InsertCell();
// Set the table style used based on the unique style identifier.
table.StyleIdentifier = StyleIdentifier.MediumShading1Accent1;
// Apply which features should be formatted by the style.
table.StyleOptions =
TableStyleOptions.FirstColumn | TableStyleOptions.RowBands | TableStyleOptions.FirstRow;
table.AutoFit(AutoFitBehavior.AutoFitToContents);
builder.Writeln("Item");
builder.CellFormat.RightPadding = 40;
builder.InsertCell();
builder.Writeln("Quantity (kg)");
builder.EndRow();
builder.InsertCell();
builder.Writeln("Apples");
builder.InsertCell();
builder.Writeln("20");
builder.EndRow();
builder.InsertCell();
builder.Writeln("Bananas");
builder.InsertCell();
builder.Writeln("40");
builder.EndRow();
builder.InsertCell();
builder.Writeln("Carrots");
builder.InsertCell();
builder.Writeln("50");
builder.EndRow();
doc.Save(ArtifactsDir + "WorkingWithTableStylesAndFormatting.BuildTableWithStyle.docx");

تُظهر الصور أدناه تمثيلاً لـ Table Styles في Microsoft Word وخصائصها المقابلة في Aspose.Words.

formatting-table-style-aspose-words-net

خذ التنسيق من نمط الجدول وقم بتطبيقه كتنسيق مباشر

يوفر Aspose.Words أيضًا طريقة ExpandTableStylesToDirectFormatting لأخذ التنسيق الموجود في نمط الجدول وتوسيعه ليشمل صفوف وخلايا الجدول كتنسيق مباشر. حاول الجمع بين التنسيق ونمط الجدول ونمط الخلية.

يوضح مثال التعليمات البرمجية التالي كيفية توسيع التنسيق من الأنماط إلى صفوف وخلايا الجدول كتنسيق مباشر:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
// Get the first cell of the first table in the document.
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
Cell firstCell = table.FirstRow.FirstCell;
// First print the color of the cell shading.
// This should be empty as the current shading is stored in the table style.
Color cellShadingBefore = firstCell.CellFormat.Shading.BackgroundPatternColor;
Console.WriteLine("Cell shading before style expansion: " + cellShadingBefore);
doc.ExpandTableStylesToDirectFormatting();
// Now print the cell shading after expanding table styles.
// A blue background pattern color should have been applied from the table style.
Color cellShadingAfter = firstCell.CellFormat.Shading.BackgroundPatternColor;
Console.WriteLine("Cell shading after style expansion: " + cellShadingAfter);