Имя: Пароль:
1C
 
Работа с картинками в Excel
0 Lazy Cat
 
20.10.10
13:03
Ситуация такая: есть файл *.xlsx, сформированный из 1С 82 (через ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX), т.к. шаблон сложный и программно его не опишешь в Excel) В файле есть картинки, которые были в шаблоне, всего 2 типа картинок. Необходимо, чтобы они имели разный размер - 1 типа 1 размер, 2-соответственно другой.
Как сделать одного размера, я сообразил:

   Эксель = Новый COMОбъект("Excel.Application");
   Книга  =  Эксель.WorkBooks.Open(ИмяФайла);
   Лист = Книга.WorkSheets(1);
   Лист.Pictures.ShapeRange.LockAspectRatio = false;
   Лист.Pictures.ShapeRange.ScaleWidth(2, 0, 0);
   Лист.Pictures.ShapeRange.ScaleHeight(7, false, 0);

Кто подскажет, как можно произвольно менять размер картинок? НИкак не могу сообразить..
1 Lazy Cat
 
20.10.10
18:29
Попробую апнуть..
2 dragonIMV
 
20.10.10
18:35
а нельзя в макете в 1С сразу вставить картинки и нужный размер задать?
3 dragonIMV
 
20.10.10
18:35
(2) мы так с печатью и подписью делали...
4 Lazy Cat
 
20.10.10
18:37
Проблема в том, что Excel, когда в него выгружаешь макет с картинкой, искажает размер картинки непонятно по какому принципу. Т.е. в 1С все выглядит и печатается замечательно, а после сохранения в Excel получается лажа. ПОчему так - непонятно. Поэтому я подключаюсь к Excel и ручками устанавливаю размеры картинок.
5 dragonIMV
 
20.10.10
18:38
(4) о_О не замечал такой проблемы, но мы сохраняем в формате xls, а не xlsx
6 Lazy Cat
 
20.10.10
18:39
В xls вообще с картинками сохранять не хочет, выдает ошибку потом при открытии файла
7 dragonIMV
 
20.10.10
18:40
что за платформа и конфигурация?
а то яв 8.2 это делал и никаких проблем, в 8.1 не помню уже, давно это было
8 1C-Nick
 
20.10.10
18:43
(0) перебрать Лист.Pictures и устанавливать для каждого разный размер по идее
9 Lazy Cat
 
20.10.10
18:45
Блин, точно. В xls не искажает, в xlsx искажает. Я пробовал похоже не тот формат :) Спасибо за подсказку!!!! Я 2 дня с ним мучаюсь уже. (8) - не знаю как это сделать, информации толком нигде не нашел
10 dragonIMV
 
20.10.10
18:48
(9) до чего приятно, когда совет кому то помогает)))
11 1C-Nick
 
20.10.10
18:48
эх, а я только цикл набросал

   For Each pic In Лист1.Shapes
       pic.ScaleHeight 1.75, msoTrue
       pic.ScaleWidth 1.75, msoTrue
   Next
12 Lazy Cat
 
20.10.10
18:52
Сенкс, я себе скопировал, чувствую, еще пригодится :) А то с excel  у меня постоянно проблемы
AdBlock убивает бесплатный контент. 1Сергей