Bonjour à tous,

Je cherche à exporter un rapport fait sous Oracle Report 11G, sous format Excel xlsx.

Ça fonctionne très bien actuellement en .xls mais l'export ne fonctionne plus une fois en .xlsx

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

PROCEDURE run_report_excel_proc (v_nom varchar2, v_other varchar2) IS 
 report_id report_object;
  report_message VARCHAR2(1000);
  v_rapport VARCHAR2(52) := 'V_RAPPORT';
  vjob_id             Varchar2(100);
  v_rep_status        Varchar2(100);
  serveur             Varchar2(100);

BEGIN
  	TOOL_ENV.Getvar ('myReportServer', serveur);

    report_id := find_report_object(V_RAPPORT);
    set_report_object_property(report_id,report_execution_mode,batch);
    set_report_object_property(report_id,report_comm_mode,synchronous);
    set_report_object_property(report_id,report_desformat,'DELIMITEDDATA');
    set_report_object_property(report_id,report_server,serveur);
    set_report_object_property(report_id,report_destype,cache);
    set_report_object_property(report_id,report_FILENAME,v_nom);
    set_report_object_property(report_id,report_other,v_other||' paramform=no ENVID='||'"'||Upper(substr(get_application_property(connect_string), 4))||'"');

    report_message := run_report_object(report_id);

    vjob_id := substr(report_message,length(serveur)+2,length(report_message));
    v_rep_status:= REPORT_OBJECT_STATUS(report_message);
    WHILE v_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
        LOOP
           v_rep_status := report_object_status(report_message);
        END LOOP;
    IF v_rep_status='FINISHED' THEN
      --WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'||vjob_id||'?envid='||substr(get_application_property(connect_string), 4)||'+mimetype=application/vnd.ms-excel','_blank'); 
         WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'||vjob_id||'?envid='||substr(get_application_property(connect_string), 4)||'+mimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','_blank'); 
    ELSE
        message('La production du rapport a échoué avec le message d''erreur '||v_rep_status);
    END IF;

    IF NOT form_success THEN
       CG$FORM_ERRORS.PUSH(CG$FORM_ERRORS.MSGGETTEXT(16, 'PL/SQL held against Button failed to execute'), 'E', 'OFG', 16);
       CG$FORM_ERRORS.RAISE_FAILURE;
    END IF;
END;
J'ai changé le mimetype et il met correctement l'extension à .xlsx

Sauf que le contenu ne peux pas être lu.


J'ai essayé pleins d'autres valeurs pour DESFORMAT : SPREADSHEET , ENHANCEDSPREADSHEET etc.

En aucun cas, Excel 2010 n'arrive à lire correctement le contenu.

Auriez vous une idée de ce que je pourrais faire pour exporter en xlsx ?

merci !