بتاريخ: 10 نوفمبر 201213 سنة comment_228924 create a procedure PROCEDURE l_print_excel ISAPPLICATION OLE2.OBJ_TYPE;WORKBOOKS OLE2.OBJ_TYPE;WORKBOOK OLE2.OBJ_TYPE;WORKSHEETS OLE2.OBJ_TYPE;WORKSHEET OLE2.OBJ_TYPE;Arglist OLE2.LIST_TYPE;CELL OLE2.OBJ_TYPE;r INTEGER;c INTEGER;file_name_cl VARCHAR2(32767);user_cancel EXCEPTION;Workfont OLE2.OBJ_TYPE;WorkInterior OLE2.OBJ_TYPE;Cursor c1 isSelect 'EMP_CODE' COL1,'EMP_NAME' COL2From dual;Cursor c2 isSelect emp_code,emp_nameFrom employee_master;--Inner Proc.Procedure put_cell (Row_num number,Col_num number,put_value varchar2,font_name varchar2 default null,font_size binary_integer default null,font_style varchar2 default null,/*here you can pass BOLD for bold, ITALIC for italic etc*/font_color binary_integer default null) isBeginArglist := OLE2.create_arglist;OLE2.add_arg(Arglist,row_num);OLE2.add_arg(Arglist,col_num);cell := OLE2.get_obj_property(Worksheet,'Cells',Arglist);OLE2.destroy_arglist(Arglist);OLE2.set_property(cell,'Value',put_value);Workfont := OLE2.get_obj_property(cell,'Font');WorkInterior := OLE2.get_obj_property(cell,'Interior');If font_name is not null thenOLE2.set_property(Workfont,'Name',font_name);End if;If font_size is not null thenOLE2.set_property(Workfont,'Size',font_size);End if;If font_style is not null then OLE2.set_property(Workfont,font_style,1);End if;If font_color is not null then OLE2.set_property(Workfont,'ColorIndex',font_color);End if;OLE2.release_obj(workinterior);OLE2.release_obj(workfont);OLE2.release_obj(cell); End; BEGIN --Open Excel Application and make it visibleAPPLICATION := OLE2.CREATE_OBJ('Excel.Application');OLE2.SET_PROPERTY(APPLICATION,'Visible',True);---------------------------------------------------------------------------Open a specified file where i want to export data/* Arglist := OLE2.create_arglist;OLE2.add_arg(Arglist,'C:\temp\test.xls');WORKBOOKS := OLE2.GET_OBJ_PROPERTY(APPLICATION, 'WORKBOOKS');WORKBOOK := OLE2.INVOKE_OBJ(WORKBOOKS, 'Open',Arglist);OLE2.destroy_arglist(Arglist); *//*open new file*/WORKBOOKS := OLE2.GET_OBJ_PROPERTY(APPLICATION, 'WORKBOOKS');WORKBOOK := OLE2.INVOKE_OBJ(WORKBOOKS, 'Add');----------------------------------------------------------------------------Initilize work sheet Worksheet := OLE2.get_obj_property(Application,'Activesheet');OLE2.set_property(Worksheet,'Name','MySheetNo.1'); /*Print titles*/r := 1;put_Cell (r,1,'EMPLOYEE LIST OF THE COMPANY',font_style=>'BOLD');r := 2;For r1 in c1 loopput_Cell (r,1,r1.col1,font_style=>'BOLD');put_Cell (r,2,r1.col1,font_style=>'BOLD');r := r+1;--increment rowEND LOOP;/*Print Data*/For r2 in c2 loopput_Cell (r,1,r2.emp_code);put_Cell (r,2,r2.emp_name);r := r+1;end loop;-- Save the Excel file createdArglist := OLE2.Create_Arglist;OLE2.Add_Arg(Arglist,'c:\temp\test.xls');OLE2.Invoke(workbook, 'Save', Arglist);OLE2.Destroy_Arglist(Arglist);-- release workbookOLE2.Release_Obj(worksheet);OLE2.Release_Obj(workbook);OLE2.Release_Obj(workbooks);OLE2.Release_Obj(application);End; الكود مجرب واعمل به حاليا فى مقر عملى لمزيد من التفاصيل والاستفسارات arafaa.blogspot.com تم تعديل 10 نوفمبر 201213 سنة بواسطة ahmed.arafa تقديم بلاغ
بتاريخ: 10 نوفمبر 201213 سنة comment_228952 السلام عليكم ورحمة اللهالأخ / احمدشكرا لك حرصك على إفادة الأخوة الأعضاء ...جزاك الله خيرا تقديم بلاغ
بتاريخ: 11 نوفمبر 201213 سنة comment_228960 ممكن نعرف كيف يتم عمل هذا الكوداو مكن شرح بسيط ...وشكراوتقبل مروري.. تقديم بلاغ
بتاريخ: 11 نوفمبر 201213 سنة كاتب الموضوع comment_228973 اه طبعا ممكنفكره الكود عموما لو انت محتاج تتطلع بيانات من على الفورمه الى اكسل شيتمن خلال زر معين يقوم المستخدم بلضغط عليه من على الفورمهطريقه استعمال الكودقم باضافه بروسديور فى البروجرم يونت بتاعتكوبعد كده قم بانشاء زر على الفورمه تنده من خلاله على البروسديورطريقه عمل الكودالكود يعتمد على LIBRARYاسمها OLE2وهى المسؤله عن عمليه الاكسبورت للاكسل الكود يعتمد على كرسر معين من خلال الكرسر تقدر تختار البيانات المناسبه اللى انت محتاج تعمل لها اكسبورتوهتلاقى ان الكود فيه كومنت بيوضحلك لو مثلا حابب تضيف اسم توضيحى للعمودلو حابب مثلا تعدل فى لون وشكل الخطلو حابب تعدل فى اسم الشيت وهكذا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.