2012-04-05 145 views
2

我已经写了下面的代码使用C#代码来改变PPT的表格单元格的背景颜色,但什么也没有发生:如何使用c#代码更改ppt表格单元格的背景颜色?

//creating powerpoint aaplication 
PowerPoint.Application pptApp = new PowerPoint.Application(); 
pptApp.Visible = Office.MsoTriState.msoTrue; 
var pptPresent = pptApp.Presentations; 
var fileOpen = pptPresent.Open(@file, Office.MsoTriState.msoFalse, Office.MsoTriState.msoTrue, Office.MsoTriState.msoTrue); 
// getting first slide 
PowerPoint.Slide objSlide = fileOpen.Slides[1]; 
PowerPoint.Shapes item = objSlide.Shapes; 
// getting first shape 
var shape1 = item[1]; 
// check if shape is table 
if (shape1.HasTable == Office.MsoTriState.msoTrue) 
{ 
    // change the table cell to red color 
    shape1.Table.Cell(2, 5).Shape.Fill.BackColor.RGB = System.Drawing.Color.Red.ToArgb(); 
    // make it visible 
    shape1.Fill.Visible = Office.MsoTriState.msoTrue; 
} 
// saving the ppt 
fileOpen.SaveAs(openFolder + subStr + ".pptx",PowerPoint.PpSaveAsFileType.ppSaveAsDefault,Office.MsoTriState.msoTrue); 
// close the ppt 
fileOpen.Close(); 

上面这段代码没有按预期工作,有人可以帮我吗?

回答

1

要更改单元格颜色需要使用ForeColor而不是BackColor。绘画颜色可能无法按预期工作。改变使用ColorTranslator。

shape1.Table.Cell(2, 5).Shape.Fill.ForeColor.RGB = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 
相关问题