看过 http://bbs.justep.com/forum.php?mod=viewthread&tid=23896 帖子 用这里的方法 向Execl中指定单元格插入图片,怎么写代码
function TINFO_PROJECTDETAIL.SetPicToExcel(const AFileName: string; AJPG: TJPEGImage;
const ASheetIndex, ARowIndex, AColumnIndex: Integer): Boolean;
var
objApplication, objWorkBooks,ob: 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);
objShapes := dispatchApplication.PropertyPut('Shapes', [ARowIndex, AColumnIndex]);
tmpShapes := DispatchHelper.Create(objShapes);
try
tmpShapes.Equals(AJPG);
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; |