//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//usingSystem.Drawing;usingSystem.Collections.Generic;usingGrapeCity.Documents.Word; namespaceDsWordWeb.Demos{// This sample demonstrates various conditional table formatting options.publicclassConditionalTableStyles {publicGcWordDocumentCreateDocx() {GcWordDocument doc = newGcWordDocument(); // Table dimensions:var rows = 20;var cols = 7; doc.Body.Paragraphs.Add($"A {cols} columns by {rows} rows table, with conditional styles applied to most elements:"); // Add an empty table:var t = doc.Body.Tables.Add(0, 0); // Add some rows and cells to it:var cells = newList<string>(cols);for (int col = 0; col < cols; ++col) cells.Add(string.Empty);for (int row = 0; row < rows; ++row) {for (int col = 0; col < cols; ++col) cells[col] = $"Row {row + 1}, col {col + 1}"; t.Rows.Add(cells.ToArray()); } // Create a table style on which we will define conditional formatting:var ts1 = doc.Styles.Add("Table Style 1", StyleType.Table);// And assign the style to the table: t.Style = ts1; // Set up simple borders:foreach (var border in ts1.Table.Borders) { border.LineStyle = LineStyle.Single; border.LineWidth = 0.5f; border.Color.RGB = Color.DarkGray; }// Add some padding: ts1.Table.Padding.All = 2; // To use conditional styles, we need to set corresponding flags on the table's style options.// In this case, we set all of them: t.Format.StyleOptions =TableStyleOptions.FirstRow | TableStyleOptions.LastRow | TableStyleOptions.FirstColumn | TableStyleOptions.LastColumn | TableStyleOptions.RowBands | TableStyleOptions.ColumnBands; // Set up the table for row and column bands: ts1.Table.RowStripe = 1; ts1.Table.ColumnStripe = 1; // Shortcut to access table's conditionals:var conds = ts1.Table.Conditionals; // Odd rows' style: conds[TableStyleOverride.Band1Horizontal].Font.Bold = true;// Band*Vertical styles override Band*Horizontal styles if there is a conflict.// Here, becase we set vertical band backgrounds, horizontal ones // will not be seen in the document: conds[TableStyleOverride.Band1Horizontal].Shading.Texture = TexturePattern.Clear; // overridden conds[TableStyleOverride.Band1Horizontal].Shading.BackgroundPatternColor.RGB = Color.Magenta; // overridden// Even rows' style: conds[TableStyleOverride.Band2Horizontal].Font.Italic = true;// Won't be seen in the document (see comment above): conds[TableStyleOverride.Band2Horizontal].Shading.Texture = TexturePattern.Clear; // overridden conds[TableStyleOverride.Band2Horizontal].Shading.BackgroundPatternColor.RGB = Color.Brown; // overridden // Odd columns' style: conds[TableStyleOverride.Band1Vertical].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.Band1Vertical].Shading.BackgroundPatternColor.RGB = Color.FromArgb(0xe6, 0xff, 0xe6);// Even columns' style: conds[TableStyleOverride.Band2Vertical].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.Band2Vertical].Shading.BackgroundPatternColor.RGB = Color.FromArgb(0xff, 0xff, 0xe6); // First/last/corner styles will override horizontal and vertical bands if there is a conflict: conds[TableStyleOverride.FirstColumn].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.FirstColumn].Shading.BackgroundPatternColor.RGB = Color.CadetBlue; conds[TableStyleOverride.FirstRow].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.FirstRow].Shading.BackgroundPatternColor.RGB = Color.PaleVioletRed; conds[TableStyleOverride.LastColumn].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.LastColumn].Shading.BackgroundPatternColor.RGB = Color.PapayaWhip; conds[TableStyleOverride.LastRow].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.LastRow].Shading.BackgroundPatternColor.RGB = Color.PaleGoldenrod; conds[TableStyleOverride.NorthWestCell].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.NorthWestCell].Shading.BackgroundPatternColor.RGB = Color.Red; conds[TableStyleOverride.NorthEastCell].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.NorthEastCell].Shading.BackgroundPatternColor.RGB = Color.Green; conds[TableStyleOverride.SouthWestCell].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.SouthWestCell].Shading.BackgroundPatternColor.RGB = Color.Blue; conds[TableStyleOverride.SouthEastCell].Shading.Texture = TexturePattern.Clear; conds[TableStyleOverride.SouthEastCell].Shading.BackgroundPatternColor.RGB = Color.Purple; // Done:return doc; } }}