我需要能够将图像添加到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上找到答案,我没有看到允许图片的单元格的任何属性。
答案 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);
通过这种方式,您可以像普通的“复制/粘贴”操作一样将图像插入幻灯片。