Table |
The TableRowFormat type exposes the following members.
Name | Description | |
---|---|---|
TableRowFormat | Initializes a new instance of TableRowFormat class. |
Name | Description | |
---|---|---|
AllowBreakAcrossPages | When true, the text in a table row is allowed to split across a page break. | |
GridAfter | Gets or sets the number of TableColumn in the parent table's Columns which shall be left after the last cell in the table row. | |
GridBefore | Gets or sets the number of TableColumn in the parent table's Columns which must be skipped before the contents of this table row (its table cells) are added to the parent table. | |
Height | Gets or sets the table row height. | |
Hidden | Gets or sets a value indicating whether table row shall be hidden from display at display time in a document. | |
RepeatOnEachPage | Gets or sets a value indicating whether the table row shall be repeated at the top of each new page on which part of it's table is displayed. |
Name | Description | |
---|---|---|
ClearFormatting |
Clears the formatting.
(Overrides FormatClearFormatting) | |
Clone | Clones this TableRowFormat instance. | |
Equals |
Determines whether the specified object is equal to this
TableRowFormat instance.
(Overrides ObjectEquals(Object)) |
See Developer Guide: How to apply formatting for table rows
using SautinSoft.Document; using SautinSoft.Document.Drawing; using SautinSoft.Document.Tables; using System.Linq; namespace Example { class Program { static void Main(string[] args) { // Get your free 100-day key here: // https://sautinsoft.com/start-for-free/ TableRowFormatting(); } /// <summary> /// Shows how to set a height for a table row, repeat a row as header on each page, shift a row by N columns to the right. /// </summary> /// <remarks> /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/tablerow-format.php /// </remarks> static void TableRowFormatting() { string docxPath = @"FormattedTable.docx"; // Let's create document. DocumentCore dc = new DocumentCore(); Section s = new Section(dc); dc.Sections.Add(s); int rows = 30; int columns = 5; Table t = new Table(dc, rows, columns); t.TableFormat.PreferredWidth = new TableWidth(100, TableWidthUnit.Percentage); t.TableFormat.Borders.SetBorders(MultipleBorderTypes.All, BorderStyle.Single, Color.DarkGray, 1); t.TableFormat.AutomaticallyResizeToFitContents = false; s.Blocks.Add(t); // Specify row height: // 10 mm - for odd rows. // 15 mm - for even rows. double oddHeight = LengthUnitConverter.Convert(10, LengthUnit.Millimeter, LengthUnit.Point); double evenHeight = LengthUnitConverter.Convert(15, LengthUnit.Millimeter, LengthUnit.Point); for (int r = 0; r < t.Rows.Count; r++) { TableRow row = t.Rows[r]; if (r % 2 != 0) row.RowFormat.Height = new TableRowHeight(evenHeight, HeightRule.AtLeast); else row.RowFormat.Height = new TableRowHeight(oddHeight, HeightRule.AtLeast); } // Add the table caption - mark the specific row (for example: 0) to repeat on each page. TableRow firstRow = t.Rows[0]; // Repeate as header row at the top of each page. // Note: Only the first row in the table can be set up as header. firstRow.RowFormat.RepeatOnEachPage = true; // Merge all cells into a one in the first row (Caption). int colSpan = firstRow.Cells.Count; for (int c = firstRow.Cells.Count - 1; c>=1; c--) { firstRow.Cells.RemoveAt(c); } // Specify how many columns this cell will take up. firstRow.Cells[0].ColumnSpan = colSpan; // Set the table caption in the first row and first cell. Paragraph p = new Paragraph(dc); p.Inlines.Add(new Run(dc, "This is the Row 0 (RepeatOnEachPage = true)", new CharacterFormat() { FontColor = Color.Blue, Size = 20 })); p.ParagraphFormat.Alignment = HorizontalAlignment.Center; t.Rows[0].Cells[0].Blocks.Add(p); // Another interesting properties of TableRowFormat: // GridBefore and GridAfter // Add "Total" at the end of the table. TableRow rowTotal = new TableRow(dc); rowTotal.Cells.Add(new TableCell(dc)); rowTotal.Cells[0].Content.Start.Insert(string.Format("Total rows: {0}", rows), new CharacterFormat() { FontColor = Color.Red, Size = 30 }); // Shift the rowTotal to the right corner. // In our case, shift on 4 columns. rowTotal.RowFormat.GridBefore = columns-1; rowTotal.RowFormat.Height = new TableRowHeight(evenHeight, HeightRule.AtLeast); t.Rows.Add(rowTotal); // Save our document into DOCX format. dc.Save(docxPath); // Open the result for demonstration purposes. System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(docxPath) { UseShellExecute = true }); } } }
Imports SautinSoft.Document Imports SautinSoft.Document.Drawing Imports SautinSoft.Document.Tables Imports System.Linq Namespace Example Friend Class Program Shared Sub Main(ByVal args() As String) TableRowFormatting() End Sub ''' Get your free 100-day key here: ''' https://sautinsoft.com/start-for-free/ ''' <summary> ''' Shows how to set a height for a table row, repeat a row as header on each page, shift a row by N columns to the right. ''' </summary> ''' <remarks> ''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/tablerow-format.php ''' </remarks> Private Shared Sub TableRowFormatting() Dim docxPath As String = "FormattedTable.docx" ' Let's create document. Dim dc As New DocumentCore() Dim s As New Section(dc) dc.Sections.Add(s) Dim rows As Integer = 30 Dim columns As Integer = 5 Dim t As New Table(dc, rows, columns) t.TableFormat.PreferredWidth = New TableWidth(100, TableWidthUnit.Percentage) t.TableFormat.Borders.SetBorders(MultipleBorderTypes.All, BorderStyle.Single, Color.DarkGray, 1) t.TableFormat.AutomaticallyResizeToFitContents = False s.Blocks.Add(t) ' Specify row height: ' 10 mm - for odd rows. ' 15 mm - for even rows. Dim oddHeight As Double = LengthUnitConverter.Convert(10, LengthUnit.Millimeter, LengthUnit.Point) Dim evenHeight As Double = LengthUnitConverter.Convert(15, LengthUnit.Millimeter, LengthUnit.Point) For r As Integer = 0 To t.Rows.Count - 1 Dim row As TableRow = t.Rows(r) If r Mod 2 <> 0 Then row.RowFormat.Height = New TableRowHeight(evenHeight, HeightRule.AtLeast) Else row.RowFormat.Height = New TableRowHeight(oddHeight, HeightRule.AtLeast) End If Next r ' Add the table caption - mark the specific row (for example: 0) to repeat on each page. Dim firstRow As TableRow = t.Rows(0) ' Repeate as header row at the top of each page. ' Note: Only the first row in the table can be set up as header. firstRow.RowFormat.RepeatOnEachPage = True ' Merge all cells into a one in the first row (Caption). Dim colSpan As Integer = firstRow.Cells.Count For c As Integer = firstRow.Cells.Count - 1 To 1 Step -1 firstRow.Cells.RemoveAt(c) Next c ' Specify how many columns this cell will take up. firstRow.Cells(0).ColumnSpan = colSpan ' Set the table caption in the first row and first cell. Dim p As New Paragraph(dc) p.Inlines.Add(New Run(dc, "This is the Row 0 (RepeatOnEachPage = true)", New CharacterFormat() With { .FontColor = Color.Blue, .Size = 20 })) p.ParagraphFormat.Alignment = HorizontalAlignment.Center t.Rows(0).Cells(0).Blocks.Add(p) ' Another interesting properties of TableRowFormat: ' GridBefore and GridAfter ' Add "Total" at the end of the table. Dim rowTotal As New TableRow(dc) rowTotal.Cells.Add(New TableCell(dc)) rowTotal.Cells(0).Content.Start.Insert(String.Format("Total rows: {0}", rows), New CharacterFormat() With { .FontColor = Color.Red, .Size = 30 }) ' Shift the rowTotal to the right corner. ' In our case, shift on 4 columns. rowTotal.RowFormat.GridBefore = columns-1 rowTotal.RowFormat.Height = New TableRowHeight(evenHeight, HeightRule.AtLeast) t.Rows.Add(rowTotal) ' Save our document into DOCX format. dc.Save(docxPath) ' Open the result for demonstration purposes. System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(docxPath) With {.UseShellExecute = True}) End Sub End Class End Namespace