We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

How to change background color of table row using Aspose.Slides?

I’m using Aspose.slides .NET and try to change the row background color in a table. Based on the samples, I should be able to set it with CellFormat.FillFormat.PatternFormat.ForeColor.Color. However, it just doesn’t change the default color no matter whether I tried with CellFormat or PortionFormat.

public static ITable AddTable(ISlide slide, float x, float y, double[] dblCols, double[] dblRows)
ITable table = slide.Shapes.AddTable(x, y, dblCols, dblRows);
table.FirstRow = true;
table.HorizontalBanding = false;
Color tableHeaderFillColor = Color.FromArgb(48, 158, 199); // Hex #309EC7

        // setting first row cells' font height
        PortionFormat portionFormat = new PortionFormat();
        portionFormat.FontHeight = 14;
        portionFormat.FillFormat.FillType = FillType.Solid;
        portionFormat.FillFormat.SolidFillColor.Color = Color.White;

        **portionFormat.FillFormat.PatternFormat.ForeColor.Color = tableHeaderFillColor;** 
        for (int n = 0; n < dblCols.Length; n++)
            table[n, 0].TextAnchorType = TextAnchorType.Center;
        // setting the rest row cells text color
        portionFormat.FillFormat.SolidFillColor.Color = Color.Red;
        background = table[1, 1].CellFormat.FillFormat.PatternFormat;
        for (int i = 1; i < dblRows.Length; i++)
            for (int n = 0; n < dblCols.Length; n++)
                //set text vertical alignment
                table[n, i].TextAnchorType = TextAnchorType.Center;

                //set border
                table[n, i].CellFormat.BorderTop.FillFormat.FillType = FillType.NoFill;
                table[n, i].CellFormat.BorderLeft.FillFormat.FillType = FillType.NoFill;
                table[n, i].CellFormat.BorderBottom.FillFormat.FillType = FillType.Solid;
                table[n, i].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color = tableHeaderFillColor;

                //set cell background color
                **table[n, i].CellFormat.FillFormat.PatternFormat.ForeColor.Color = Color.White;**

        return table;

Thank you for posting the query. It will take me a while to investigate the issue. I will answer you as soon as possible.

You can change the background color of table cells as shown below:

// set cell background color
table[n, i].CellFormat.FillFormat.FillType = FillType.Solid;
table[n, i].CellFormat.FillFormat.SolidFillColor.Color = Color.White;

More examples: Manage Table, Manage Cells
API Reference: ICellFormat Interface, IFillFormat Interface

Also, I did not find the capability to change the background color of a whole table row at once. Would you like us to add such a feature to Aspose.Slides?

Great, above works! Yes. I think it would be very useful to add feature to change the background color of a whole table row. Also I think it would be very useful to add above to the doc samples.

We will improve the documentation as soon as possible. I added a ticket with ID SLIDESNET-42754 (changing the background color of a whole table row at once) in our tracking system for you. Our development team will consider implementing this feature. You will be notified when it is implemented.