''
'' 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 uses conditional table formatting to build a table
'' with alternating row backgrounds.
Public Class AlternatingRows
Function CreateDocx() As GcWordDocument
Dim doc = New GcWordDocument()
'' Random-ish table dimensions:
Dim rand = Util.NewRandom()
Dim rows = rand.Next(10, 100)
Dim cols = rand.Next(4, 6)
doc.Body.Paragraphs.Add(
$"A {cols} columns by {rows} rows table, with conditional styles applied to alternating rows:")
'' 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 certain table styles, we need to set corresponding flags on the table's style options:
t.Format.StyleOptions = TableStyleOptions.RowBands
'' Set up the style to use alternating background colors on odd and even rows:
ts1.Table.RowStripe = 1
'' Odd rows' style:
ts1.Table.Conditionals(TableStyleOverride.Band1Horizontal).Shading.Texture = TexturePattern.Clear
ts1.Table.Conditionals(TableStyleOverride.Band1Horizontal).Shading.BackgroundPatternColor.RGB = Color.FromArgb(&HE6, &HFF, &HE6)
'' Even rows' style:
ts1.Table.Conditionals(TableStyleOverride.Band2Horizontal).Shading.Texture = TexturePattern.Clear
ts1.Table.Conditionals(TableStyleOverride.Band2Horizontal).Shading.BackgroundPatternColor.RGB = Color.FromArgb(&HFF, &HFF, &HE6)
'' Done:
Return doc
End Function
End Class