Introduction:

In APEX 4.2, reports with some Chinese and other language characters gets replaced with inverted question marks if downloaded. This issue can be fixed using the below method.

Steps:

1 Create a new blank page in the application.

Create a new blank page in the application using Customized template by removing all the contents in the page, like navigation menus, APEX page Toolbar, and others as the entire page will be downloaded as a native Excel Spreadsheet.

2 Create PLSQL Region with no template. Use your report’s Source query instead of the below mentioned query in the Loop.

BEGIN

HTP.p

(‘<table border=1 white-space=nowrap><tr style=”background-color:silver;”>

<th>Company</th><th>Title</th>

<th>Direct Report Total</th></tr>’

);

 

FOR i IN (SELECT company, title, val

/*Company Title will have the Chinese characters Ex: 冲渣冷却塔 Slag cooling tower*/

FROM   company_report

WHERE ID = :p12_c_id)

LOOP

HTP.p (   ‘<tr height=80><th align=right>’

|| i.company

|| ‘</th><th>’

|| i.title

|| ‘</th><th>’

|| i.val

|| ‘</th></tr>’

);

END LOOP;

END;

3 Create Before Header process to set HTTP Headers.

 

Create a Before Header Process in the page with the required filename as mentioned below.

 

 

 

BEGIN

OWA_UTIL.mime_header (‘application/vnd.ms-excel’, FALSE);

HTP.prn (‘Content-Disposition: attachment; filename=”spreadsheet.xls”

‘  );

OWA_UTIL.http_header_close;

END;

 

4 Redirect the Download button in your report screen to this new page.

 

In the report screen, create a button Download with

Action-> Redirect to Page (new page created above with custom download process).

 

Summary:

 

Default Download will return the Chinese characters in the excel file as below:

Original Characters         :   冲渣冷却塔 Slag cooling tower

Default Download          :   ????? Slag cooling tower

Using Custom Download    :   冲渣冷却塔 Slag cooling tower

 

Note:

Also, In Chinese characters, ‘&’ symbol must be escaped as these will not be accepted by default. Replace ‘&’ in the data with ‘&amp;’ in the select query to escape the ‘&’ symbol.

Recommended Posts

Start typing and press Enter to search