A table is a great way to display data into group, frequently used in our financial reports, academic reports and any other documents that contain a group of similar data. In this article, I am fusing on how to insert a table in Word, fill the table with data and how to format the cells using Spire.Doc for WPF with C#.
Code Snippets
Step 1: Initialize a new instance of Document class, add a section to it.
Document doc = new Document(); Spire.Doc.Section s = doc.AddSection();
Step 2: Define the data that will be filled with table.
String[] Header ={"Vendor No","Vendor Name", "Address","City","State","Zip"};
String[][] data = {
new String[]{"3501","Cacor Corporation","161 Southfield Rd","Southfield","OH","60093"},
new String[]{"3502","Underwater","50 N3rd Street","Indianapolis","IN","46208"},
new String[]{"3503","J.W. Luscher Mfg.","65 Addams Street","Berkely","MA","02779"},
new String[]{"3504","Scuba Professionals","3105 East Brace","Rancho Dominguez","CA","90221"},
new String[]{"3505","Divers' Supply Shop", "5208 University Dr","Macon","GA","20865"},
new String[]{"3506","Techniques","52 Dolphin Drive","Redwood City","CA","94065-1086"},
};
Step 3: Add a table with border to section, set the rows and columns number based on the data length.
Spire.Doc.Table table = s.AddTable(true); table.ResetCells(data.Length + 1, Header.Length);
Step 4: Fill the table with the predefined data and format the cells.
Spire.Doc.TableRow FRow= table.Rows[0];
FRow.IsHeader = true;
FRow.Height = 23;
FRow.RowFormat.BackColor = System.Drawing.Color.DarkBlue;
for (int i = 0; i < Header.Length; i++)
{
//Cell Alignment
Paragraph p = FRow.Cells[i].AddParagraph();
FRow.Cells[i].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
p.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
//Fill Header data and Format the Cells
TextRange TR = p.AppendText(Header[i]);
TR.CharacterFormat.FontName = "Calibri";
TR.CharacterFormat.FontSize = 12;
TR.CharacterFormat.TextColor = System.Drawing.Color.White;
TR.CharacterFormat.Bold = true;
}
for (int r = 0; r < data.Length; r++)
{
TableRow DataRow = table.Rows[r + 1];
//Row Height
DataRow.Height = 15;
//C Represents Column.
for (int c = 0; c < data[r].Length; c++)
{
//Cell Alignment
DataRow.Cells[c].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
//Fill Data in Rows
Paragraph p2 =DataRow.Cells[c].AddParagraph();
TextRange TR2=p2.AppendText(data[r][c]);
//Format Cells
p2.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
TR2.CharacterFormat.FontName = "Calibri";
TR2.CharacterFormat.FontSize = 10;
TR2.CharacterFormat.TextColor = System.Drawing.Color.Black;
}
}
Step 5: Call AutoFitBebavior() method to make the table AutoFit to Window.
table.AutoFitBehavior(AutoFitBehaviorType.wdAutoFitWindow);
Step 6: Save and launch the file.
doc.SaveToFile("WordTable.docx");
System.Diagnostics.Process.Start("WordTable.docx");
Output:

Full Code:
private void button1_Click(object sender, RoutedEventArgs e)
{
Document doc = new Document();
Spire.Doc.Section s = doc.AddSection();
String[] Header ={"Vendor No","Vendor Name", "Address","City","State","Zip"};
String[][] data = {
new String[]{"3501","Cacor Corporation","161 Southfield Rd","Southfield","OH","60093"},
new String[]{"3502","Underwater","50 N3rd Street","Indianapolis","IN","46208"},
new String[]{"3503","J.W. Luscher Mfg.","65 Addams Street","Berkely","MA","02779"},
new String[]{"3504","Scuba Professionals","3105 East Brace","Rancho Dominguez","CA","90221"},
new String[]{"3505","Divers' Supply Shop", "5208 University Dr","Macon","GA","20865"},
new String[]{"3506","Techniques","52 Dolphin Drive","Redwood City","CA","94065-1086"},
};
Spire.Doc.Table table = s.AddTable(true);
table.ResetCells(data.Length + 1, Header.Length);
Spire.Doc.TableRow FRow= table.Rows[0];
FRow.IsHeader = true;
FRow.Height = 23;
FRow.RowFormat.BackColor = System.Drawing.Color.DarkBlue;
for (int i = 0; i < Header.Length; i++)
{
Paragraph p = FRow.Cells[i].AddParagraph();
FRow.Cells[i].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
p.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
TextRange TR = p.AppendText(Header[i]);
TR.CharacterFormat.FontName = "Calibri";
TR.CharacterFormat.FontSize = 12;
TR.CharacterFormat.TextColor = System.Drawing.Color.White;
TR.CharacterFormat.Bold = true;
}
for (int r = 0; r < data.Length; r++)
{
TableRow DataRow = table.Rows[r + 1];
DataRow.Height = 15;
for (int c = 0; c < data[r].Length; c++)
{
DataRow.Cells[c].CellFormat.VerticalAlignment = Spire.Doc.Documents.VerticalAlignment.Middle;
Paragraph p2 =DataRow.Cells[c].AddParagraph();
TextRange TR2=p2.AppendText(data[r][c]);
p2.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Center;
TR2.CharacterFormat.FontName = "Calibri";
TR2.CharacterFormat.FontSize = 10;
TR2.CharacterFormat.TextColor = System.Drawing.Color.Black;
}
}
table.AutoFitBehavior(AutoFitBehaviorType.wdAutoFitWindow);
doc.SaveToFile("WordTable.docx");
System.Diagnostics.Process.Start("WordTable.docx");
}
