function TINFO_PROJECTDETAIL.SetPicToExcel(const AFileName: string; AJPG: TJPEGImage;
const ASheetIndex, ARowIndex, AColumnIndex: Integer): Boolean;
var
objApplication, objWorkBooks: object;
objSourceWB, objCell,objSheet, objShapes: object;
dispatchApplication, dispatchWorkBooks, dispatchSourceWB: System.DispatchHelper;
tmpCell,tmpSheet, tmpShapes: System.DispatchHelper;
begin
Result := False;
objApplication := ComObj.CreateOleObject('Excel.Application');
dispatchApplication := DispatchHelper.Create(objApplication);
objWorkBooks := dispatchApplication.PropertyGet('WorkBooks',[]);
dispatchWorkBooks := DispatchHelper.Create(objWorkBooks);
try
//创建Excel对象并打开
objSourceWB := dispatchWorkBooks.InvokeMethod('Open',[AFileName]);
dispatchSourceWB := DispatchHelper.Create(objSourceWB);
objSheet := dispatchApplication.PropertyGet('Sheets', [ASheetIndex]);
tmpSheet := DispatchHelper.Create(objSheet);
tmpSheet.PropertyPut('cells',[ARowIndex, AColumnIndex]);
objShapes := tmpSheet.InvokeMethod('Shapes.AddPicture',[AJPG]);//--这句出错,现在就不如何创建图片对象?请指教
tmpShapes := DispatchHelper.Create(objShapes);
try
//tmpShapes .Equals(AJPG);
tmpSheet.InvokeMethod('Saved',[True]);
Result := True;
except
raise 'SetPic Failed';
end;
finally
//释放进程
dispatchApplication.InvokeMethod('quit', []);
(objCell as System.IDisposable).Dispose;
(objSheet as System.IDisposable).Dispose;
(objShapes as System.IDisposable).Dispose;
(objSourceWB as System.IDisposable).Dispose;
(objWorkBooks as System.IDisposable).Dispose;
(objApplication as System.IDisposable).Dispose;
end;
end; |