بتاريخ: 29 ديسمبر 200520 سنة comment_55936 السلام عليكم هذا السكريبت لانشاء ملف اكسل من قاعدة بيانات اوراكللدي مشكلة في اللغة العربية بحيث انه يتم تحويل الاسماء او الكلمات العربية الى الى لغة غير مفهومةالرجاء منكم المساعدة في ذلك وشكرا====================================================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 ديسمبر 200520 سنة بواسطة qnoc_raed تقديم بلاغ
بتاريخ: 29 ديسمبر 200520 سنة comment_55948 الاخ الكريماليك هذا المثال لعملية الحساب في ملف 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; تقديم بلاغ
بتاريخ: 29 ديسمبر 200520 سنة كاتب الموضوع comment_55954 الاخ ADMIN05ما اريده هو تعديل على الكود الذي ارسلته ليظهر الاسماء العربية بخط عربيلو جربت هذا الكود الذ ارسلته انا لفتح لك برنامج الاكسل ونقل البيامات مباشرة من الاوراكل الى الاكسلالكود الذي ارسالته انت لم استطع تشغيله يعطيني هذا الخطاTRIGGER RAISED UNHANDELED EXCEPTION ORA-106556 تقديم بلاغ
بتاريخ: 4 يناير 200620 سنة comment_56595 ما بعرف اذا فهمتك مزبوط ولا لأ بس اذا كانت مشكلة اللغة العربية على مستوى DB فاحيانا تكون في ال NLS_LANG التي تستخدمها واحيانا تكون بسبب خصائص الويندوز نفسه.على العموم تأكد من خصائص الويندوز اولا من خلال ال regional options في controll panel واعتقد بالتحديد general حيث يجب ان تكون اللغة المختارة هي اللغة العربية (setting for current user)..... ارجو الافادة....صديقكم الجديد لؤي تقديم بلاغ
بتاريخ: 4 يناير 200620 سنة كاتب الموضوع comment_56601 شكرا لمرورك الاخ لؤيلكن اللغة في الويندوز صحيحة وهي العربيةوانا استخدم maericanفي الNLS_LNAGوما عندي فيها اي مشكلة بالنسبة للغة العربية في التطبيقات الاخرىارجو منك تجرب الكود وتشوف النتائج وتخبرني اذا سمحت تقديم بلاغ
بتاريخ: 4 يناير 200620 سنة comment_56604 السلام عليكم ورحمة الله وبركاتهالاخ الكريم هو فعلا يوجد مشكلة في التحويل وخصوصا العربيولكن تبين لي بعد البحث ان المشكلة في 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; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.