Тема: Image & Excel
Показать сообщение отдельно
Старый 19.09.2008, 12:43   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Записывайте действия в Excel макрорекордером, причесывайте получившийся код VBA, портируйте его на X++.
Следующий код VBA достает картинку из файла и позиционирует ее левый верхний угол в левый верхний угол ячейки B3:
Код:
 
Range("B3").Select
ActiveSheet.Pictures.Insert "C:\MyPicture.jpg"
P.S.
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM xlApp; // Excel.Application
    COM wbook;
    COM activeSheet;
    COM pictures;
    COM range;
    ;

    doc.NewFile();
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range(ComExcelDocument_RU::numToNameCell(2,3)); // B3
    range.Select();

    pictures = activeSheet.Pictures();
    pictures.Insert(@'C:\MyPicture.jpg');
}
Соответственно, если картинка вставляется из буфера обмена и уже находится в нем, то вместо двух последних строк достаточно одного оператора:
X++:
activeSheet.Paste();
// pictures = activeSheet.Pictures();
// pictures.Insert(@'C:\MyPicture.jpg');
За это сообщение автора поблагодарили: arhat (1).