通过Matlab在Excel中插入图像

时间:2011-10-15 18:42:42

标签: excel matlab com office-interop

我正在使用函数Shapes.AddPicture在excel文件中插入图像。

我正在调用这样的例程:

leftPlacement=450;
topPlacement=20;
imgWidth=350;
imgHeight=300;

Shapes.AddPicture([pwd '\' img] ,0,1,leftPlacement,topPlacement,imgWidth,imgHeight);

这很好用。但是,图像会屏蔽文件中的数据。要更改位置,必须手动更改leftPlacement, topPlacement, imgWidth imgHeight

我想知道,如果有更好的方法可以将图像透明地放在空单元格中。

1 个答案:

答案 0 :(得分:2)

形状未附加到Excel工作表中的单个单元格 - 它们浮动在它们上方并具有自己的坐标。如果要将它们浮动到特定单元格上方,可以获取该单元格的坐标并使用它们。

因此,如果您想将其浮动到单元格C9上方,请尝试

left = xl.ActiveSheet.Range('C9').Left;
top = xl.ActiveSheet.Range('C9').Top;
xl.ActiveSheet.Shapes.AddPicture('myPicPath',0,1,left,top,myPicHeight,myPicWidth)

其中xl是包含对Excel应用程序的引用的变量。

请注意,如果您随后调整大小或以其他方式移动任何单元格,则形状/图像的位置不会改变 - 您需要使用相同的方法重新定位它。