Search code examples
asp.netopenxmloffice-interopaspose-slidespowerpoint-interop

Table header column background color not changing


I am using ASPOSE Slides in my project to perform a PPT task. I want to change my table header background-color but I have not found any solutions in Aspose forum for it. Can anybody provide me with the solution?

            ISlide sld = press.Slides[0];
            double[] dblCols = { 250, 250};
            double[] dblRows = { 70, 70, 70,70 };
            // Add table shape to slide
            ITable tbl = sld.Shapes.AddTable(100, 100, dblCols, dblRows);
            tbl[0, 1].TextFrame.Text = "some text";
            tbl[0, 2].TextFrame.Text = "some text";
            tbl[0, 3].TextFrame.Text = "some text";
            tbl[0, 3].BorderBottom.FillFormat.FillType = FillType.Solid;
            tbl[0, 3].FillFormat.SolidFillColor.BackgroundColor = Color.Blue;
            tbl[0,3].BorderBottom.Width = 2;

            Portion portion = (Portion)tbl[0, 1].TextFrame.Paragraphs[0].Portions[0];
            portion.PortionFormat.FillFormat.FillType = FillType.Solid;
            portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;

}


Solution

  • I have observed you requirements related to setting table header background. Please try using following sample code that has example of setting fill color for one of header row cell. You can replicate the same for other cells too.

    public static void TestTableBackground()
    {
        Presentation press = new Presentation();
        ISlide sld = press.Slides[0];
        double[] dblCols = { 250, 250 };
        double[] dblRows = { 70, 70, 70, 70 };
        // Add table shape to slide
        ITable tbl = sld.Shapes.AddTable(100, 100, dblCols, dblRows);
        tbl[0, 1].TextFrame.Text = "some text";
        tbl[0, 2].TextFrame.Text = "some text";
        tbl[0, 3].TextFrame.Text = "some text";
        tbl[0, 0].FillFormat.FillType = FillType.Solid;
        tbl[0, 0].FillFormat.SolidFillColor.Color = Color.Blue;
       
        Portion portion = (Portion)tbl[0, 1].TextFrame.Paragraphs[0].Portions[0];
        portion.PortionFormat.FillFormat.FillType = FillType.Solid;
        portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    
        press.Save(@"C:\Aspose Data\TableFormat.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
    }
    

    I am working as Support developer/ Evangelist at Aspose.