Выгрузка TImage в Excel

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Выгрузка TImage в Excel

Сообщение hron66 » 29.01.2021 14:01:24

Доброго времени суток!
На форме есть TImage с изображением. Пытаюсь вставить в Excel: копирую изображение из TImage в буфер обмена. Затем вставляю в Excel с помощью команды PasteSpecial. В итоге на PasteSpecial все время возникает исключение EOleException с текстом:
Метод PasteSpecial из класса Worksheet завершен неверно.
Код: Выделить всё
procedure TfmMain.TestBtnClick(Sender: TObject);
var Img: TImage;   
    xla: Variant;
    xls: Variant;
begin
  Img:=TImage.Create(nil);

  xla := CreateOleObject('Excel.Application');
  xla.Workbooks.Add;
  xls := xla.Workbooks[1].WorkSheets[1];
  xls.Name := 'Sheet1';
  xla.Visible:=True;

  Clipboard.Assign(Img.Picture);
   
  xla.Cells(5,5).Select;
  xls.PasteSpecial(5,False,False,False,0,EmptyParam,EmptyParam); 

  Img.Free;
end;


Я думаю, что все дело в том, что неправильно передаются параметры в PasteSpecial. Если у кого-нибудь есть рабочий вариант, поделитесь пожалуйста. Заранее благодарен.
hron66
незнакомец
 
Сообщения: 5
Зарегистрирован: 01.11.2019 14:44:52

Re: Выгрузка TImage в Excel

Сообщение DedFrend » 29.01.2021 15:51:03

Попробуй Clipboard.Assign(Img.Picture.Bitmap)
DedFrend
постоялец
 
Сообщения: 156
Зарегистрирован: 25.11.2018 12:21:50

Re: Выгрузка TImage в Excel

Сообщение jsa » 29.01.2021 15:55:28

1. В коде не видно, что бы вы что-либо вставляли в Img
2. Почему формат 5?
Вот тут https://docs.microsoft.com/ru-ru/office ... stespecial
написано, что это формат "Графический объект Microsoft Office" т.е. видимо это векторный графический примитив. А у вас Img: TImage;
Попробуйте форматы 0 или 1
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Выгрузка TImage в Excel

Сообщение hron66 » 01.02.2021 11:10:21

1) Да, это просто один из вариантов кода. Я пробовал загружать изображение прямо на форму и в runtime. Изображение в Img точно есть.
2) Пробовал все форматы от 1 до 5. Ни с каким не работает.
hron66
незнакомец
 
Сообщения: 5
Зарегистрирован: 01.11.2019 14:44:52

Re: Выгрузка TImage в Excel

Сообщение DedFrend » 01.02.2021 15:13:48

А мое предложение попробовали? Потому что с вашим кодом у меня вообще в клипборд не попадает
DedFrend
постоялец
 
Сообщения: 156
Зарегистрирован: 25.11.2018 12:21:50

Re: Выгрузка TImage в Excel

Сообщение jsa » 02.02.2021 09:31:26

hron66 писал(а):2) Пробовал все форматы от 1 до 5. Ни с каким не работает.

Для чистоты эксперимента спрошу.
0 - PNG пробовали?
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Выгрузка TImage в Excel

Сообщение hron66 » 03.02.2021 14:37:12

Пробовал BMP, JPG, PNG. Результат тот же.
hron66
незнакомец
 
Сообщения: 5
Зарегистрирован: 01.11.2019 14:44:52

Re: Выгрузка TImage в Excel

Сообщение DYUMON » 04.02.2021 07:38:42

может быть как то так надо ?
Код: Выделить всё
xla.Cells(5,5).Select;
  xls.ActiveSheet.Range.PasteSpecial(5,False,False,False,0,EmptyParam,EmptyParam);
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 29

Рейтинг@Mail.ru