通过Matlab在Excel中插入图像

我正在使用函数, 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

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

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应用程序的引用的variables。

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