以编程方式在powerpoint中的表格单元格中显示图像

时间:2012-07-03 17:31:00

标签: c# powerpoint embedded-resource

我需要能够将图像添加到powerpoint中用C#创建的动态表中。反正有没有这样做?我现在唯一能想到的就是显示图像并将其叠加在桌面上,但这不是首选方法......

PowerPoint.Table objTable = objSlide.Shapes.AddTable(1, 2, StartX, StartY, Width, Height).Table;
objTable.Cell(1, 1).Shape.TextFrame.TextRange.Text = "Look at my image -->";
objTable.Cell(1, 1).Shape.TextFrame.TextRange.Font.Size = 14;

Bitmap fileImage = new Bitmap(MyWinApp.Properties.Resources.image);

// ???????????????
objTable.Cell(1, 2). .... = fileImage;
// ???????????????

无法在Google上找到答案,我没有看到允许图片的单元格的任何属性。

3 个答案:

答案 0 :(得分:0)

我很确定桌子不支持图像等嵌入式图形。可以想到的唯一解决方法是将图片添加为像这样的段落的子弹图像:

tableShape.Table.Cell(i, j).Shape.TextFrame.TextRange. _
    ParagraphFormat.Bullet.Picture ("C:\path\to\image.jpg")

你只需要记住,子弹的大小(=图像大小)与段落的字体大小一致,当段落没有文本时(或空格字符可以),子弹/图像将被隐藏。

答案 1 :(得分:0)

试试这个:

objTable.Cell(1, 2).Shape.Fill.UserPicture(fileImage);

答案 2 :(得分:0)

我一直在寻找同样问题的解决方案,发现这样的问题,可能不是最好的:将图像写入本地磁盘并将图像文件插入PowerPoint中。

正如Rory和Nazim发布的那样,您可以将图像写入临时文件,例如“xx.tmp”。然后

objTable.Cell(1, 2).Shape.Fill.UserPicture("xx.tmp");

通过这种方式,您可以将图像作为背景图像插入表格单元格中。

此外,您可以将图像插入幻灯片(而不是表格),并手动设置其位置和大小:

slide.Shapes.AddPicture("xx.tmp", MsoTriState.msoFalse, MsoTriState.msoTrue, 50, 60, 30,30);

通过这种方式,您可以像普通的“复制/粘贴”操作一样将图像插入幻灯片。