Имя: Пароль:
1C
1С v8
Хочу вписать картинку в ячейку excel
,
0 uvl
 
16.08.11
17:51
В общем данный код прекрасно работает, но если бы узнать свойства картинок, чтобы подогнать их под размер ячейки или под размер области из ячеек вообще бы было замечательно.
Путь = КаталогВременныхФайлов()+ "\1С_Картинка_"+Формат(ТекущаяДата(),"ДФ=yyyyMMddЧЧммсс")+".jpg";                    
КартинкаВПамяти = ВыборкаКартинка.ФайлХранилище.Получить();                    
КартинкаВПамяти.Записать(Путь);
ЛистНовый.Cells(СтрокаНач,2).Select();
ЛистНовый.Pictures.Insert(Путь);

Поиск по форуму и гуглю делал.
Макрос записывал, но че то именно по изменению размеров картинки ниче не понял.
1 uvl
 
16.08.11
18:03
никто не хочет отвечать... все забили))
2 Vladal
 
16.08.11
18:04
Или не знают, или уже домой пошли
3 Vladal
 
16.08.11
18:04
я - не знаю.
4 Vladal
 
16.08.11
18:07
Кстати, советую найти книгу "Системное программирование в 1С:Предприятии 7.7 и 8.0" - там довольно подробно описано про ексель
5 uvl
 
16.08.11
18:10
(4) да у меня есть такая, там про картинки не пишут ниче)) ну и на том спасибо
6 uvl
 
16.08.11
18:59
Вопрос решен.
Может кому пригодится:

// Вставляем картинку в место, где спозиционирован курсор и выделяем ее
ЛистНовый.Pictures.Insert(Путь).Select();
// Узнаем высоту картинки, если больше 80, то уменьшаем до 80
Если Число(ExcelApp.Application.Selection.ShapeRange.Height())>80 Тогда
  ExcelApp.Application.Selection.ShapeRange.Height=80;
КонецЕсли;
// Узнаем высоту картинки
PictureHeight=ExcelApp.Application.Selection.ShapeRange.Height();
// Устанавливаем туже высоту, для строки под картинкой
ЛистНовый.Rows(СтрокаНач).RowHeight = PictureHeight;

// добавляем гиперссылку к картинке
ЛистНовый.Hyperlinks.Add(ExcelApp.Application.Selection.ShapeRange.Item(1),ВыборкаСсылка.url);
7 uvl
 
17.08.11
16:31
пришлось вернуться к вопросу, точнее так:
в excel 2003 все нормально отрабатывается,
в 2007м же все картинки добавляются в первую ячейку
(((
8 uvl
 
18.08.11
00:21
Мне вот интересно, на любые вопросы про Excel каждый говорит делай через ОЛЕ. И я ж делаю... но при возникновении конкретного вопроса, вразумительных ответов нет... точнее никаких ответов нет. Все настолько профессиональны, что не могут ответить, либо не считают нужным? либо все-таки не знают отличий в версиях 2003 и 2007... Я весь инет перерыл... ниче путнего нет...( а жаль
9 smaharbA
 
18.08.11
00:50
ты просто очки забыл одеть
10 smaharbA
 
18.08.11
01:03
Как вписать сохранив пропорции сам думай, и как ты тоже не сложно сразу угадить в нужную ячейку или после растащить

Ячейки = Лист.Cells;
Ячейка = Лист.Item(3,3);
Шейпы = Лист.Shapes;
Шейп = Шейпы.AddPicture(Путь, 0, -1, Ячейка.Left, Ячейка.Top, Ячейка.Width, Ячейка.Height);
11 uvl
 
18.08.11
01:23
(10) спасибо
12 uvl
 
19.08.11
00:34
Для полноты темы и закрытия темы, еще инфа:

// получаем высоту и ширину картинки
// Для работы нам потребуется внешняя dll
// http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=a332a77a-01b8-4de6-91c2-b7ea32537e29#filelist
// файл (WIAAutSDK.zip)
Img = Новый COMОбъект("WIA.ImageFile");  
Img.LoadFile(Путь);
ВысотаКартинки = Img.Height;
ШиринаКартинки = Img.Width;