اعمال سبک جدول

سبک جدول مجموعه‌ای از قالب‌بندی را تعریف می‌کند که می‌تواند به راحتی روی یک جدول اعمال شود. قالب‌بندی‌هایی مانند حاشیه‌ها، سایه‌زنی، تراز و فونت را می‌توان به سبک جدول تنظیم کرد و برای ظاهری ثابت در بسیاری از جدول‌ها اعمال کرد.

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 کاربر را تسهیل می‌کند تا گزینه‌های سبک مختلف مانند سایه‌زنی، padding، indentation، 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

قالب بندی را از Table Style بگیرید و آن را به صورت Direct Formatting اعمال کنید

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