Вставьте изображение в Excel через Matlab - PullRequest
1 голос
/ 15 октября 2011

Я использую функцию 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 Ответ

2 голосов
/ 17 октября 2011

Фигуры не привязаны к отдельным ячейкам на листе 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.

Обратите внимание, что если вы впоследствии измените размер или иным образом переместите любую из ячеек, положение фигуры / изображения не изменится - вам понадобитсячтобы переместить его снова, используя тот же метод.

...