CellFormatShading Property |
Namespace: Aspose.Words.Tables
DocumentBuilder builder = new DocumentBuilder(); // Start building a table builder.StartTable(); // Set the appropriate paragraph, cell, and row formatting. The formatting properties are preserved // until they are explicitly modified so there's no need to set them for each row or cell builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; builder.CellFormat.ClearFormatting(); builder.CellFormat.Width = 150; builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center; builder.CellFormat.Shading.BackgroundPatternColor = Color.GreenYellow; builder.CellFormat.WrapText = false; builder.CellFormat.FitText = true; builder.RowFormat.ClearFormatting(); builder.RowFormat.HeightRule = HeightRule.Exactly; builder.RowFormat.Height = 50; builder.RowFormat.Borders.LineStyle = LineStyle.Engrave3D; builder.RowFormat.Borders.Color = Color.Orange; builder.InsertCell(); builder.Write("Row 1, Col 1"); builder.InsertCell(); builder.Write("Row 1, Col 2"); builder.EndRow(); // Remove the shading (clear background) builder.CellFormat.Shading.ClearFormatting(); builder.InsertCell(); builder.Write("Row 2, Col 1"); builder.InsertCell(); builder.Write("Row 2, Col 2"); builder.EndRow(); builder.InsertCell(); // Make the row height bigger so that a vertically oriented text could fit into cells builder.RowFormat.Height = 150; builder.CellFormat.Orientation = TextOrientation.Upward; builder.Write("Row 3, Col 1"); builder.InsertCell(); builder.CellFormat.Orientation = TextOrientation.Downward; builder.Write("Row 3, Col 2"); builder.EndRow(); builder.EndTable(); builder.Document.Save(ArtifactsDir + "DocumentBuilder.InsertTable.docx");
Document doc = new Document(); // We start by creating the table object. Note how we must pass the document object // to the constructor of each node. This is because every node we create must belong // to some document Table table = new Table(doc); // Add the table to the document doc.FirstSection.Body.AppendChild(table); // Here we could call EnsureMinimum to create the rows and cells for us. This method is used // to ensure that the specified node is valid, in this case a valid table should have at least one // row and one cell, therefore this method creates them for us // Instead we will handle creating the row and table ourselves. This would be the best way to do this // if we were creating a table inside an algorithm for example Row row = new Row(doc); row.RowFormat.AllowBreakAcrossPages = true; table.AppendChild(row); // We can now apply any auto fit settings table.AutoFit(AutoFitBehavior.FixedColumnWidths); // Create a cell and add it to the row Cell cell = new Cell(doc); cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue; cell.CellFormat.Width = 80; // Add a paragraph to the cell as well as a new run with some text cell.AppendChild(new Paragraph(doc)); cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text")); // Add the cell to the row row.AppendChild(cell); // We would then repeat the process for the other cells and rows in the table // We can also speed things up by cloning existing cells and rows row.AppendChild(cell.Clone(false)); row.LastCell.AppendChild(new Paragraph(doc)); row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text")); // Remove spacing between cells table.AllowCellSpacing = false; doc.Save(ArtifactsDir + "Table.InsertTableUsingNodes.doc");