Прилагане на стил на таблица
Стил на таблица определя набор от форматиране, което може лесно да се приложи към таблица. Форматирането като граници, засенчване, подравняване и шрифт може да бъде поставено в стил маса и се прилага към много таблици за последователен външен вид.
Aspose.Words поддържа прилагането на стил маса на масата и също така чете свойства на всяка таблица стил. Стиловете на таблиците се запазват по време на товарене и спестяване по следните начини:
- Table styles in DOCX and 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.
Вземете форматиране от стила на таблица и го нанесете като директно форматиране
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); |