1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Delphi и Excel 2003

Тема в разделе "Delphi - программирование", создана пользователем sint, 2 май 2010.

  1. sint

    sint Гость

    Репутация:
    0
    Всем привет!
    Такая проблема:
    Не могу разобраться, как из Delphi (7) вставить в екселевский документ картинку именно в определенную ячейку и с определенными размерами.

    К примеру...
    Есть шаблон документа, в нем отмечены области, в которые нужно вставить изображение из файла(файл выбирает пользователь). Причем это изображение должно иметь заданные пользователем размеры и вставляться должно в строго определенное шаблоном место(к примеру область pik1, pic2...)

    Помогите плиз!))))
     
  2. sinkopa

    sinkopa Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Например так:
    Код:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, ExcelXP, OleServer, jpeg;
    
    type
    TForm1 = class(TForm)
    ExcelApplication1: TExcelApplication;
    ExcelWorksheet1: TExcelWorksheet;
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    
    var
    Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    uses
    ClipBrd,OfficeXP;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Sels: OleVariant;
    begin
    ExcelApplication1.Connect;
    ExcelApplication1.Workbooks.Add(EmptyParam,0);
    ExcelApplication1.ActiveWorkbook.Sheets.Add(EmptyParam,EmptyParam,1,EmptyParam,0);
    
    ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as _Worksheet);
    ExcelWorksheet1.Range['C6','C6'].Select;
    Clipboard.Assign(Image1.Picture);
    ExcelWorksheet1.Paste;
    
    with ExcelWorksheet1.Shapes.Item(1) do
    begin
    // подвинули
    IncrementLeft(15.8);
    IncrementTop(150.8);
    // растянули
    ScaleWidth(3.19, msoFalse, msoScaleFromTopLeft);
    ScaleHeight(3.18, msoFalse, msoScaleFromTopLeft);
    // итд...
    //Подробнее смотри в ExcelXP.pas начиная со строчки 22529:
    // Shape = dispinterface
    //['{00024439-0000-0000-C000-000000000046}']
    end;
    ExcelApplication1.Visible[0] := true;
    ExcelWorksheet1.Disconnect;
    ExcelApplication1.Disconnect;
    end;
    
    end.
     
Загрузка...

Поделиться этой страницей