如何使用C#代码更改PPT表格单元格的背景颜色
本文关键字:单元格 表格 背景 颜色 PPT 何使用 代码 | 更新日期: 2023-09-27 18:30:15
我在下面写了一段代码来使用 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();
上面的代码段没有按预期工作,有人可以帮助我吗?
要更改单元格颜色,需要使用前色而不是背景色。绘制颜色可能无法按预期工作。 要更改它,请使用 ColorTranslator。
shape1.Table.Cell(2, 5).Shape.Fill.ForeColor.RGB = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
好问题!Fill 属性也可用于 Shape 对象,无论它是 Cell 还是其他类型的 Shape。
此线程中提到了 Fill 属性的另一个示例:https://stackoverflow.com/a/26253177/20337158。
同样来自Microsoft学习网站:https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff763049(v=office.12)