ConditionalTableStyles.vb
- ''
- '' This code is part of Document Solutions for Word demos.
- '' Copyright (c) MESCIUS inc. All rights reserved.
- ''
- Imports System.Drawing
- Imports GrapeCity.Documents.Word
-
- '' This sample demonstrates various conditional table formatting options.
- Public Class ConditionalTableStyles
- Function CreateDocx() As GcWordDocument
- Dim doc = New GcWordDocument()
-
- '' Table dimensions:
- Dim rows = 20
- Dim cols = 7
-
- doc.Body.Paragraphs.Add(
- $"A {cols} columns by {rows} rows table, with conditional styles applied to most elements:")
-
- '' Add an empty table:
- Dim t = doc.Body.Tables.Add(0, 0)
-
- '' Add some rows and cells to it:
- Dim cells = New List(Of String)(cols)
- For col = 1 To cols
- cells.Add(String.Empty)
- Next
- For row = 0 To rows - 1
- For col = 0 To cols - 1
- cells(col) = $"Row {row + 1}, col {col + 1}"
- Next
- t.Rows.Add(cells.ToArray())
- Next
-
- '' Create a table style on which we will define conditional formatting:
- Dim ts1 = doc.Styles.Add("Table Style 1", StyleType.Table)
- '' And assign the style to the table:
- t.Style = ts1
-
- '' Set up simple borders:
- For Each border In ts1.Table.Borders
-
- border.LineStyle = LineStyle.Single
- border.LineWidth = 0.5F
- border.Color.RGB = Color.DarkGray
- Next
- '' 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 Or TableStyleOptions.LastRow Or
- TableStyleOptions.FirstColumn Or TableStyleOptions.LastColumn Or
- TableStyleOptions.RowBands Or 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:
- Dim 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(&HE6, &HFF, &HE6)
- '' Even columns' style:
- conds(TableStyleOverride.Band2Vertical).Shading.Texture = TexturePattern.Clear
- conds(TableStyleOverride.Band2Vertical).Shading.BackgroundPatternColor.RGB = Color.FromArgb(&HFF, &HFF, &HE6)
-
- '' 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
- End Function
- End Class
-