我感兴趣的是将Oracle-APEX生成的页面内容导出到外部文件,同时尽可能多地保留格式。最终,我想将其导出为.doc、.xls或.pdf格式。现在,我使用一个.doc文件进行测试。
目前,我正试图通过创建一个PL/SQL匿名块“进程”来实现这一点,该进程在按下“导出”按钮时执行。基于我在网上找到的一个示例,如果我在该过程中使用以下代码,我可以将页面中的一个项目输出到.doc文件:
DECLARE
test_blob BLOB;
BEGIN
dbms_lob.createtemporary(test_blob, FALSE);
dbms_lob.open(test_blob, dbms_lob.lob_readwrite);
DBMS_LOB.APPEND(test_blob, UTL_RAW.CAST_TO_RAW(:P4016_ITEM_NAME));
OWA_UTIL.mime_header('application/doc', FALSE);
HTP.p('Content-Length: ' || DBMS_LOB.getlength(test_blob));
htp.p('Content-Disposition: attachment; filename= "text.doc"');
OWA_UTIL.http_header_close;
WPG_DOCLOAD.download_file(test_blob);
dbms_lob.close(test_blob);
END;然而,我想在我的页面上输出一些包含表格的区域,据我所知,这些表格不被认为是项目(我仍然是APEX的新手)。如果我在DMS_LOB.APPEND行中包含表名,我会收到一条错误消息。有没有人知道引用这些区域的简单方法?
我发现的唯一解决办法是在我的导出文件中复制页面,方法是根据我的APEX页面的HTML封装SQL查询的结果,这些查询用于在HTML中填充表。换句话说,如果我想要使用斜体,我将执行以下操作:
...
dbms_lob.append(test_blob, UTL_RAW.CAST_TO_RAW('<html><i>'));
dbms_lob.append(test_blob, [PARSED SQL QUERY]);
dbms_lob.append(test_blob, UTL_RAW.CAST_TO_RAW('</i></html>'));如果有人知道一种更简单的方法,最好是简单地引用我的页面区域,我将非常感谢。
发布于 2014-11-01 04:38:50
有一种方法(3种方法)可以获得PDF - http://www.oracle.com/technetwork/developer-tools/apex/learnmore/custom-pdf-reports-1953918.pdf。你也可以使用交互式报表,它有导出选项。但默认情况下,它只能以HTML格式导出。
这并不完全是您所要求的,但是您不需要编写代码。
https://stackoverflow.com/questions/26682398
复制相似问题