Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.14;
Скачать: CL | DM;

Вниз

Скопировать Chart из Excel в Image   Найти похожие ветки 

 
yaric   (2008-05-21 09:47) [0]

Необходимо забрать с листа график и отобразить на канве компонента TImage

Пробую так возникает ошибка. Плиз подскажите что неправильно..


var i:Integer;
   ch,sh : OleVariant;
begin
 lcid:=0;
 lcid := GetUserDefaultLCId;
 fXL := TExcelApplication.Create(nil);
 try
   fXL.ConnectKind := ckNewInstance;
   fXl.Application.AutomationSecurity := 1;
   fXL.DisplayAlerts[lcid] := False;
   fXL.AutoQuit := False;
   fXL.Visible[lcid] := false;
   fXL.Connect;
   fxl.Workbooks.Add("c:\1.xls", lcid);

   ch:=(iDispatch(sh) as _Worksheet).ChartObjects("Chart. 1",lcid);  //ошИБКА
   (iDispatch(ch) as ChartObject).CopyPicture(xlscreen,xlbitmap);

   if Clipboard.HasFormat(CF_BITMAP)
   then Image1.Picture.Bitmap.Handle:=Clipboard.GetAsHandle(CF_bitmap);

 except
   ShowMessage("Невозможно соединиться с MS Excel");
 end;


 
Palladin ©   (2008-05-21 12:24) [1]

эта ошибка, гласящая что она ошибка, наиболее распространенная ошибка в мире и решается очень легко

(С)


 
Style ©   (2008-05-21 12:45) [2]

А кто Workbook, Worksheet объявлять будет???
sh - вообще это что???

  ch:=(iDispatch(sh) as _Worksheet).ChartObjects("Chart. 1",lcid);  //ошИБКА

к тому же метод не правильно используется в описании ChartObjects(Index, lcid) . т.е. первый параметр Index, а не Name

короче вот так работает:

procedure TForm1.Button1Click(Sender: TObject);
var
  fXL: TExcelApplication;
  Sheet: _Worksheet;
  Book: _Workbook;
  Chart: ChartObject;
  lcid: THandle;
begin
lcid := GetUserDefaultLCId;
fXL := TExcelApplication.Create(nil);
try
  fXL.ConnectKind := ckNewInstance;
  fXL.DisplayAlerts[lcid] := False;
  fXL.AutoQuit := False;
  fXL.Visible[lcid] := true;
  fXL.Connect;

  Book := fxl.Workbooks.Add("c:\1.xls", lcid);
  Sheet := (Book.ActiveSheet as _Worksheet);
  Chart := Sheet.ChartObjects(1,lcid) as ChartObject;
  Chart.CopyPicture(xlscreen,xlbitmap);

  if Clipboard.HasFormat(CF_BITMAP)
    then Image1.Picture.Bitmap.Handle:=Clipboard.GetAsHandle(CF_bitmap);

except
  ShowMessage("Превед медвед йа не икселъ");
end;

end;



Страницы: 1 вся ветка

Текущий архив: 2009.06.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
2-1240666145
HF-Trade
2009-04-25 17:29
2009.06.14
idHTTP.Get не получаеться забрать страничку


15-1238963404
Юрий
2009-04-06 00:30
2009.06.14
С Днём рождения ! 6 апреля 2009 понедельник


15-1239264375
evgenij
2009-04-09 12:06
2009.06.14
Видимость значений переменных (String) в exe


3-1222059679
ЮЮ
2008-09-22 09:01
2009.06.14
MS Access-овские OLE-объекты. Как с ними работать без Access-а?


2-1240812136
cosinus
2009-04-27 10:02
2009.06.14
Замена стандартного окна копирования файлов.