PDA

View Full Version : باز کردن عکس توسط Excel



MY DEAR DELPHI
شنبه 14 شهریور 1388, 16:11 عصر
سلام به همه دوستان
در برنامم می خوام وقتی کاربر بر روی عکسی کلیک کرد آن عکس را در Excel باز کند.در ضمن میخوام برنامه Excel از یک Template که قبلا درستش کردم استفاده کنه .

K.Mohammadreza
شنبه 14 شهریور 1388, 17:29 عصر
شما مي توانيد از کامپوننت هاي Excel Component Suit استفاده کنيد که مطمئناً تمام نيازهاتون برآورده مي شود

MY DEAR DELPHI
شنبه 14 شهریور 1388, 17:43 عصر
حالا اگه بدون اون کمپوننت ها بشه برای من یکی خیلی خوب می شه . من تا اینجاشو که فایل Template رو با Excel باز کنم رو نوشتم :
Var
Template: OleVariant;
ExcelApp: OleVariant;
begin
Template := GetCurrentDir + '\Template.xlt';
ExcelApp := CreateOleObject('excel.Application');
ExcelApp.Workbooks.Add(Template);

ExcelApp.Visible := True ;

MY DEAR DELPHI
شنبه 14 شهریور 1388, 21:39 عصر
از مدیران و مسئولان سایت خواهشمندم که کمکم کنید.کارم لنگ این قسمت مونده

vcldeveloper
یک شنبه 15 شهریور 1388, 00:56 صبح
حالا اگه بدون اون کمپوننت ها بشه برای من یکی خیلی خوب می شه . من تا اینجاشو که فایل Template رو با Excel باز کنم رو نوشتم
از اینجا به بعدش را باید به راهنمای توسعه دهندگان Office در MSDN متوسل بشید. کار کردن با رابط برنامه نویسی برنامه های Office دو وجهه داره، یکی کار با COM هست که کد بالا مربوط به آن هست، یعنی لود کرد شی COM مربوطه؛ یکی هم کار کردن با رابط برنامه نویسی آن برنامه. یعنی شما با COM به برنامه وصل میشید، بعد از اون رو دیگه باید با رابط برنامه نویسی اون برنامه خاص آشنا باشید؛ مثلا اینکه برنامه Excel چه متدها یا خصوصیاتی در اختیار برنامه نویس قرار میده، و هر کدام از آنها چیکار می کنند.
راهنمای مربوط به این متدها و خصوصیات در MSDN هست، و شما می تونید از طریق MSDN به لیست متدها و خصوصیات آن و اینکه چیکار می کنند، دسترسی داشته باشید. مثلا همین خصوصیت WorkBook چی هست، یا متد Add آن چیکار میکنه.

یک راه برای اینکه متوجه بشید برای انجام یک سری کار خاص در یکی از برنامه های Office باید از چه خصوصیات یا متدهایی استفاده کرد، این هست که یک بار آن کار را در داخل همان برنامه انجام بدید، و کار انجام شده را به صورت Macro ذخیره کنید. با مراجعه به سورس ماکرو می تونید متوجه بشید که Excel برای آن کار خاص از چه متدها و خصوصیاتی استفاده کرده، شما هم در کد خودتان همان ها را بکار بگیرید.

mafazel
یک شنبه 15 شهریور 1388, 14:02 عصر
بالای پروسیجر خودتون این پروسیجر رو تعریف کنید


procedure InsertPicture(ActiveSheet: OleVariant; ImageFilePath: string; ImageHeight, PictureTop: Integer);
var
Picture: OleVariant;
begin
Picture := ActiveSheet.Pictures.Insert(ImageFilePath);
Picture.Width := ImageHeight * Picture.Width / Picture.Height;
Picture.Height := ImageHeight;
Picture.ShapeRange.Left := 0;
Picture.ShapeRange.Top := PictureTop;
Picture.Placement := xlMove;
end;


توی برنامه خودتون هم یک خط رو اضافه کنید:


InsertPicture(ExcelApp.ActiveSheet,'E:\1.bmp',100, 50);
ExcelApp.Visible := True ;