Aplică Stilul Tabelului

Un stil de tabel definește o serie de formatare care poate fi aplicată cu ușurință la un tabel. “Formatarea, cum ar fi borduri, umbrire, aliniere și font poate fi stabilită într-un stil de tabel și aplicată pentru multe tabele pentru un aspect coerent.”

Aspose.Words suportă aplicarea unui stil de tabel asupra unui tabel și, de asemenea, citirea proprietăților oricărui stil de tabel. Stilurile pentru tabele sunt păstrate la încărcare și salvare în următoarele moduri:

  • Stilurile de tabel în DOCX și formatul WordML sunt păstrate atunci când se încarcă și se salvează în aceste formate “- Stilurile tabelelor se păstrează la încărcare și salvare în formatul DOC (dar nu la nici un alt format)” “- Când se exportează în alte formate, randarea sau imprimarea, stilurile de tabel sunt extinse pentru formatare directă în tabel, astfel încât toate formatările sunt păstrate”

Creează un stil de tabel

Utilizatorul poate crea un nou stil și să îl adauge la colecția de stiluri. Metoda “The Add” se folosește pentru a crea un nou stil de masă.

Exemplul de cod următor arată cum să creezi un nou stil de tabel definit de utilizator:

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

Copiază un stil existent de tabelă

Dacă este necesar, poți copia un stil de tabel care deja există într-un anumit document în colecția ta de stiluri folosind metoda AddCopy.

Este important să știi că cu această copiere, stilurile legate sunt, de asemenea, copiate.

Exemplul următor de cod arată cum să importăm un stil dintr-un document în altul:

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

Aplicați un Stil de Tabel existent

F Aspose.Words oferă o TableStyle moștenită de la clasa Style. TableStyle facilitează utilizatorului să aplice diferite opțiuni de stil, cum ar fi umbrirea, padding-ul, indentarea, CellSpacing și Font, etc.

În plus, Aspose.Words oferă clasa StyleCollection și câteva proprietăți ale clasei Table pentru a specifica care stil de tabel vom lucra: Style, StyleIdentifier, StyleName și StyleOptions.

De asemenea, Aspose.Words oferă ConditionalStyle clasă care reprezintă formatarea specială aplicată unor zone dintr-o masă cu un stil de masă atribuit și ConditionalStyleCollection care reprezintă o colecție de ConditionalStyle obiecte. Această colecție conține un set permanent de elemente reprezentând câte o element pentru fiecare valoare a tipului de enumerare ConditionalStyleType. Enumerarea ConditionalStyleType definește toate zonele de tabel posibile pentru care poate fi definită formatarea condițională într-un stil de tabel.

În acest caz, formatarea condițională poate fi definită pentru toate zonele de tabel posibil definite sub tipul de enumerare ConditionalStyleType.

Exemplul următor de cod arată cum să definești formatarea condițională pentru rândul de antet al tabelului:

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

Puteți alege și ce părţi ale unei tabele să aplicaţi stiluri, cum ar fi prima coloană, ultima coloană, rândurile cu dungi. Ei sunt enumeraţi în TableStyleOptions enumerare şi aplicată prin StyleOptions proprietate. The TableStyleOptions enumerare permite o combinație bit-wise a acestor caracteristici.

Exemplul următor de cod arată cum să creezi o nouă tabelă cu un stil de tabel aplicat:

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

Fotografiile de mai jos prezintă o reprezentare a Table Styles în Microsoft Word și proprietățile lor corespunzătoare în Aspose.Words.

formatting-table-style-aspose-words-net

Ia formatarea din Stilul Tabelului și aplică-l ca Formatare Directă

Aspose.Words oferă, de asemenea, metoda ExpandTableStylesToDirectFormatting pentru a lua formatarea găsită pe un stil de tabel și o extinde asupra rândurilor și celulelor tabelului ca formatare directă. Încercă să combini formatarea cu stilul de tabel și celula stilului.

Exemplul de cod următor arată cum să extindem formatarea din stiluri asupra rândurilor și celulelor tabelelor ca formatare directă:

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