qnoc_raed بتاريخ: 29 ديسمبر 2005 تقديم بلاغ مشاركة بتاريخ: 29 ديسمبر 2005 (معدل) السلام عليكم هذا السكريبت لانشاء ملف اكسل من قاعدة بيانات اوراكللدي مشكلة في اللغة العربية بحيث انه يتم تحويل الاسماء او الكلمات العربية الى الى لغة غير مفهومةالرجاء منكم المساعدة في ذلك وشكرا====================================================DECLARE ENO NUMBER(30);NAMEA varchar2(80); CURSOR c_cur IS SELECT EMPNO,ENAME FROM EMP ; MyApplication OLE2.OBJ_TYPE;args OLE2.LIST_TYPE;wb OLE2.OBJ_TYPE;wss OLE2.OBJ_TYPE;wbs OLE2.OBJ_TYPE;cell OLE2.OBJ_TYPE;went ole2.obj_type;font ole2.obj_type; c1 number(4); c2 number(4);args1 OLE2.LIST_TYPE;begin --INITIAL CODE ESTABLISHING THE Excel Object and Workbook/WorksheetMyApplication := OLE2.CREATE_OBJ('Excel.Application'); OLE2.SET_PROPERTY(MyApplication , 'Visible',1); wbs := OLE2.GET_OBJ_PROPERTY(MyApplication ,'Workbooks'); wb := OLE2.INVOKE_OBJ(wbs,'Add');wss := OLE2.GET_OBJ_PROPERTY(MyApplication ,'ActiveSheet');OLE2.SET_PROPERTY(wss , 'Value','Sheet1');OPEN c_cur;c1:=1;LOOPc2:=1;fetch c_cur into ENO,nameA;exit when c_cur%NOTFOUND;loop if c2=2 then exit;end if;args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, c1);OLE2.ADD_ARG(args, c2);cell := OLE2.GET_OBJ_PROPERTY(wss,'Cells', args);OLE2.SET_PROPERTY(cell, 'Value', ENO);ole2.set_property (cell, 'ColumnWidth', '40'); font := ole2.GET_OBJ_PROPERTY (cell, 'Font');ole2.set_property (font, 'Size', '16');ole2.set_property (font, 'Bold', True);OLE2.DESTROY_ARGLIST(args);ole2.release_obj(cell);c2:=c2+1;args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, c1);OLE2.ADD_ARG(args, c2);cell := OLE2.GET_OBJ_PROPERTY(wss,'Cells', args);OLE2.SET_PROPERTY(cell, 'Value', NAMEA);ole2.set_property (cell, 'ColumnWidth', '40');ole2.set_property (cell, 'FontStyle', 'ANDALUS'); font := ole2.GET_OBJ_PROPERTY (cell, 'Font');ole2.set_property (font, 'Size', '28');ole2.set_property (font, 'Bold', True);OLE2.DESTROY_ARGLIST(args);ole2.release_obj(cell);END LOOP;c1:=c1+1; END LOOP;CLOSE c_cur;OLE2.DESTROY_ARGLIST(args);args1 := OLE2.CREATE_ARGLIST;OLE2.ADD_ARG(args1, 'C:\EXAMPLE.xls');OLE2.INVOKE(wb, 'SaveAs', args1);OLE2.DESTROY_ARGLIST(args1);OLE2.INVOKE(wb,'CLOSE');ole2.invoke(MYApplication,'Quit');ole2.release_obj(wb);ole2.release_obj(wbs);ole2.release_obj(wss);ole2.release_obj(wss);ole2.release_obj(wb);OLE2.RELEASE_OBJ(MyApplication);END; تم تعديل 29 ديسمبر 2005 بواسطة qnoc_raed اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 29 ديسمبر 2005 تقديم بلاغ مشاركة بتاريخ: 29 ديسمبر 2005 الاخ الكريماليك هذا المثال لعملية الحساب في ملف execl من خلال pl/sql DECLARE ConvID PLS_INTEGER; BEGIN /* Open a DDE conversation with MS Excel on topic abc.xls */ ConvID := DDE.INITIATE('EXCEL', 'abc.xls'); /* Recalculate the Excel spreadsheet */ DDE.EXECUTE(ConvID, '[calculate.now()]', 1000); END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
qnoc_raed بتاريخ: 29 ديسمبر 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 29 ديسمبر 2005 الاخ ADMIN05ما اريده هو تعديل على الكود الذي ارسلته ليظهر الاسماء العربية بخط عربيلو جربت هذا الكود الذ ارسلته انا لفتح لك برنامج الاكسل ونقل البيامات مباشرة من الاوراكل الى الاكسلالكود الذي ارسالته انت لم استطع تشغيله يعطيني هذا الخطاTRIGGER RAISED UNHANDELED EXCEPTION ORA-106556 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
luay hudieb بتاريخ: 4 يناير 2006 تقديم بلاغ مشاركة بتاريخ: 4 يناير 2006 ما بعرف اذا فهمتك مزبوط ولا لأ بس اذا كانت مشكلة اللغة العربية على مستوى DB فاحيانا تكون في ال NLS_LANG التي تستخدمها واحيانا تكون بسبب خصائص الويندوز نفسه.على العموم تأكد من خصائص الويندوز اولا من خلال ال regional options في controll panel واعتقد بالتحديد general حيث يجب ان تكون اللغة المختارة هي اللغة العربية (setting for current user)..... ارجو الافادة....صديقكم الجديد لؤي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
qnoc_raed بتاريخ: 4 يناير 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 4 يناير 2006 شكرا لمرورك الاخ لؤيلكن اللغة في الويندوز صحيحة وهي العربيةوانا استخدم maericanفي الNLS_LNAGوما عندي فيها اي مشكلة بالنسبة للغة العربية في التطبيقات الاخرىارجو منك تجرب الكود وتشوف النتائج وتخبرني اذا سمحت اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 4 يناير 2006 تقديم بلاغ مشاركة بتاريخ: 4 يناير 2006 السلام عليكم ورحمة الله وبركاتهالاخ الكريم هو فعلا يوجد مشكلة في التحويل وخصوصا العربيولكن تبين لي بعد البحث ان المشكلة في office نفسها فنسخة office2003 or officeXp يوجد فيها مشاكل هذه احدى احتمال سبب حدوث المشكلة الاحتمال الاخر هو عدم في المتغير text_io على كل حال وجدت هذا الكود على office2000 وهو يعمل بشكل صحيح جربه وخبرنا بالنتائجواسف على التأخيرطبعا يجب ان تكون الاوفيس 2000 عندك مفتوحة واظن ان الكود يعمل على اوفيس 2003 و xp بس لازم الاكسل يكون مفتوح والصفحة فاضية PROCEDURE to_excel IS application ole2.obj_type; workbooks ole2.obj_type; workbook ole2.obj_type; worksheets ole2.obj_type; worksheet ole2.obj_type; cell ole2.obj_type; args ole2.list_type; cursor Vcursor .....etc. BEGIN application := ole2.create_obj('Excel.Application'); ole2.set_property(application, 'Visible', 'False'); workbooks := ole2.get_obj_property(application, 'Workbooks'); workbook := ole2.get_obj_property(workbooks, 'Add'); worksheets := ole2.get_obj_property(workbook, 'Worksheets'); worksheet := ole2.get_obj_property(worksheets, 'Add'); row := 1; col := 1; for i in Vcursor -- Open Cursor, that returns "value" value loop args := ole2.create_arglist; ole2.add_arg(args, row); ole2.add_arg(args, col); cell := ole2.get_obj_property(worksheet, 'Cells', args); ole2.destroy_arglist(args); ole2.set_property(cell, 'Value', i.value); row := row+1; col := col+1; end loop; -- Close cursor args := ole2.create_arglist; ole2.add_arg(args, 'c:tmpEXAMPLE.XLS'); ole2.invoke(workbook, 'SaveAs', args); ole2.destroy_arglist(args); ole2.invoke(application, 'Quit'); ole2.release_obj(cell); ole2.release_obj(worksheet); ole2.release_obj(worksheets); ole2.release_obj(workbook); ole2.release_obj(workbooks); ole2.release_obj(application); END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.