'''' This code is part of Document Solutions for Word demos.'' Copyright (c) MESCIUS inc. All rights reserved.''ImportsSystem.DrawingImportsGrapeCity.Documents.Word '' This sample creates a simple table,'' and demonstrates the following table related tasks:'' - Applying table styles (borders and padding);'' - Adding rows and cells;'' - Removing rows;'' - Fetching text from a specific cell;'' - Applying character style to a specific cell.PublicClassSimpleTableFunctionCreateDocx() AsGcWordDocumentDim doc = NewGcWordDocument() '' Random-ish table dimensions:Dim rand = Util.NewRandom()Dim rows = rand.Next(15, 100)Dim cols = rand.Next(4, 6)Dim getrow = rand.Next(0, 10)Dim getcol = rand.Next(0, 4)Dim badrow = 12'' index 12 === number 13 :) Dim section = doc.Body.Sections.FirstDim header = section.GetRange().Paragraphs.Add($"A {cols} columns by {rows} rows table (note that the there's no 'row {badrow + 1}'):") '' Add an empty table:Dim t = section.GetRange().Tables.Add(0, 0) '' Add some rows and cells to it:Dim cells = New List(OfString)(cols)For col = 1To cols cells.Add(String.Empty)NextFor row = 0To rows - 1For col = 0To cols - 1 cells(col) = $"Row {row + 1}, col {col + 1}"Next t.Rows.Add(cells.ToArray())Next '' Remove a row: t.Rows(badrow).Delete() '' Create a new table style:Dim ts1 = doc.Styles.Add("Table Style 1", StyleType.Table)'' Assign the style to the table: t.Style = ts1 '' We can enumerate all table borders, including inside borders:ForEach border In ts1.Table.Borders border.LineStyle = LineStyle.Triple border.LineWidth = 0.5F border.Color.RGB = Color.PurpleNext'' Overwrite inside border's line styles: ts1.Table.Borders.InsideHorizontal.LineStyle = LineStyle.Double ts1.Table.Borders.InsideVertical.LineStyle = LineStyle.Double'' Add some cell padding: ts1.Table.Padding.All = 2 '' Finally, fetch the text from a certain cell and insert it befor the table: '' Fetching the text from a cell: because we know exactly the structure of our table,'' we can do this without any checks:'' - get the cell at index 'getcol' in row 'getrow','' - first child fetches the paragraph,'' - next child fetches the run,'' - finally, next child fetches the actual text element:Dim text = CType(t.Rows(getrow).Cells(getcol).Children.First().Children.First().Children.First(), Text)'' Get the parent run:Dim run = CType(text.ParentContent, Run)'' Mark the found cell with bold/italic font:Dim rs1 = doc.Styles.Add("cell hi-light", StyleType.Character) rs1.Font.Bold = True rs1.Font.Italic = True run.Style = rs1'' Add the fetched text from cell (2,0) before the document's opening paragraph, '' using the same character style:Dim pp = header.GetRange().Paragraphs.Insert($"Text from cell at row {getrow + 1}, col {getcol + 1} (drawn with bold/italic font): """, InsertLocation.Before)Dim r = pp.GetRange().Runs.Add(text.Value) r.Style = rs1 pp.GetRange().Runs.Add(""".") '' Done:Return docEndFunctionEndClass