![]() |
#1 |
Участник
|
![]()
Всем привет. Опять траблы при экспорте отчёта в Эхель. На этот раз с картинками.
Подсмотрел в макросе как это дело работает. Там написано ActiveSheet.Pictures.Insert('C:\temp.bmp') , вот только в нави не катит такое. Он ругается, мол не объявлена переменная Insert. Вариант Sheet.Range('A1').Insert('C:\temp.bmp') хляет, но уже при экспорте выкидывает ошибку мол вызов функции Insert неудачен. ![]() |
|
![]() |
#2 |
Участник
|
У нас картинки вставляются следующим образом:
Код: XlWorkSheet.Shapes.AddShape(1,1,1,160,60).Fill.UserPicture(Path); |
|
![]() |
#3 |
Участник
|
Спасибо, Kekki, у нас теперь тоже картинки будут вставляться таким же образом.
![]() Итак, Код: Shape:=Sheet.Shapes.AddShape(1,1,1,160,60); Shape.Fill.UserPicture('C:\tmp.bmp'); Shape.Line.Transparency:=1; |
|
![]() |
#4 |
Участник
|
Вам тоже спасибо
![]() Если мне вдруг понадобится убрать обрамление, буду знать как |
|
![]() |
#5 |
Участник
|
Вот выдрал кусок, тут небльшие заморочки.
fPar - диапазон ячеек в которые нужно вписать картинку fPar2 - путь к файлу Картинка автомасштабируется с сохранением пропроций Код: 'P': IF NextParam(fStr,fPar) THEN BEGIN IF NextParam(fStr,fPar2) THEN BEGIN XlsShapes:=XlsWsh.Shapes; XlsRng:=XlsWsh.Range(fPar); EVALUATE( PicLeft,FORMAT(XlsRng.Left)); EVALUATE( PicTop,FORMAT(XlsRng.Top)); EVALUATE( PicWidth,FORMAT(XlsRng.Width)); EVALUATE( PicHeight,FORMAT(XlsRng.Height)); XlsShape:=XlsShapes.AddPicture(fPar2,1,1,PicLeft,PicTop,PicWidth,PicHeight); i:=0; XlsShape.LockAspectRatio:=i; i:=2; j:=-1; XlsShape.ScaleHeight(i,j); XlsShape.ScaleWidth(i,j); XlsShape.LockAspectRatio:=-1; IF XlsShape.Width>PicWidth THEN XlsShape.Width:=PicWidth; IF XlsShape.Height>PicHeight THEN XlsShape.Height:=PicHeight; XlsShape.IncrementLeft((PicWidth-XlsShape.Width)/2); XlsShape.IncrementTop((PicHeight-XlsShape.Height)/2); //MESSAGE(FORMAT((PicHeight-XlsShape.Height)/2)); END; END; |
|
![]() |
#6 |
Участник
|
![]()
А как бы нам бы вставить картинку с её оригинальными размерами? Бы... Без всяких вписываний и масштабирований.
Или хотя бы узнать ширину/высоту высоту картинки до вставки? |
|
![]() |
#7 |
Участник
|
Записывай макрос, и смотри.
|
|
![]() |
#8 |
Участник
|
Думаю, создание этой темы как раз и было положено после записи макроса, когда было обнаружено, что записанная команда ActiveSheet.Pictures.Insert('C:\temp.bmp') в Наве не работает
![]() Записывал я уже всё... Мимо. |
|