前言:

 由于公司使用了Oracle APEX构建应用,且在APEX新版本v20.2版本中增强了相关报表导出数据相关功能;正好现在做的事情也需要类似的功能,就先来学习一下Oracle的APEX相关功能及实现方式;为自己优化实现相关功能做些积累吧。

 先简单介绍下APEX是什么?

APEX是什么:

 APEX:Oracle Application Express (APEX) 是低代码开发平台。借助该平台,您可以构建功能先进的可扩展安全企业应用,并且可在任何位置部署应用。

 使用 APEX,开发人员可快速开发并部署出色的应用,从而解决实际问题并立即创造价值。您无需精通各种技术,就可以提供高级解决方案。您只需集中精力解决业务问题,其他工作都可以交给 Oracle APEX 来处理。

 v20.2版本导出数据优化点:

  • 内置PDF打印和Excel下载,用于交互式报告,交互式网格和经典报告。确保在您的区域属性中启用PDF和Excel作为其他下载格式。用户可以在下载对话框中更改页面方向和大小。
  • 交互式报告-发送电子邮件:现在可以附加所有下载格式。
  • 与BI Publisher的增强集成。
  • 新的APEX_REGION.EXPORT_DATAAPEX_DATA_EXPORT API,以编程方式生成PDF,CSV,Excel,HTML,JSON和XML文件。
  • 内置PDF现在支持中文,日文和韩文。

 如需要使用可在以下的地址申请工作区:

 申请免费工作区地址:

  https://apex.oracle.com/pls/apex/f?p=4700:2:10115035671324:::RP::

APEX中导出数据实现:

 一、普通表导出、打印实现

  • 示例数据导入:

   进入:SQL工作室->实用程序->示例数据集->【EMP/DEPT】数据安装

  • 创建应用:

   进入:应用程序构建器->创建->新建应用程序->创建应用程序;创建完成如下图

   

  • 页面设计:

   进入应用程序:进入主页设计:添加经典报表元素->绑定数据表->支持导出和打印功能->进行打印设置:打印成Excel

    

  • 运行效果

   运行效果如下,点击导出时导出该表csv文件内容;打印时输出该表对于html内容

    

 二、交互式报表导出、打印

  • 设计页面:在页面中添加交互式报表->并绑定数据表

    

  • 预览执行效果:操作->下载->选择下载格式

  三、调用APEX提供API实现:

   在上面示例中添加按钮调用:Export_Data接口实现数据导出

    

    

   执行代码为以下内容:    

DECLARE
l_export apex_data_export.t_export;
l_region_id number;
BEGIN SELECT region_id into l_region_id
FROM apex_application_page_regions
WHERE application_id = 36324--(应用程序ID)
and page_id = 1--(页码id)
and static_id = 'EXRep'--(区域静态id-交互式报表需指定该id); l_export := apex_region.export_data (
p_format => apex_data_export.c_format_html,
p_page_id => 1,
p_region_id => l_region_id ); apex_data_export.download( l_export );
END;

   修改页面提交

   运行效果:

    

  • 13 APEX_DATA_EXPORT(重点):APEX_DATA_EXPORT包含用于从Oracle Application Express导出数据的实现。支持的文件类型包括:PDF,XLSX,HTML,CSV,XML和JSON。

   本次使用API服务来测试该接口功能:SQL工作室->RESTful服务->模块->创建模块(export)    

    创建模板和处理方法:

     

    添加执行脚本:

DECLARE
l_context apex_exec.t_context;
l_export apex_data_export.t_export;
BEGIN apex_session.create_session (
p_app_id => 36324,
p_page_id => 1,
p_username => 'EXAMPLE USER' ); l_context := apex_exec.open_query_context(
p_location => apex_exec.c_location_local_db,
p_sql_query => 'select * from emp' ); l_export := apex_data_export.export (
p_context => l_context,
p_format => apex_data_export.c_format_pdf ); apex_exec.close( l_context ); apex_data_export.download( p_export => l_export ); EXCEPTION
when others THEN
apex_exec.close( l_context );
raise;
END;

    导出接口方法参数说明:

参数 描述
p_context 来自EXEC基础结构的上下文对象。
p_format 导出格式。有效值为:XLSX,PDF,HTML,CSV,XML和JSON。
p_as_clob 导出为CLOB而不是BLOB(默认为FALSE)。
p_columns 以分列符开始的列属性集合,然后按显示顺序。
p_column_groups 按级别和显示顺序收集列组属性。
p_aggregates 报告汇总的集合。
p_highlights 收集报告要点。
p_file_name 定义导出的文件名。
p_print_config 用于EXCEL和PDF设置打印属性。
p_page_header 文本显示在文档的标题部分。覆盖的页面标题p_print_config
p_page_footer 文本显示在文档的页脚部分。覆盖的页面页脚p_print_config
p_supplemental_text 所有下载格式顶部的文本。
p_csv_enclosed_by 用于CSV以封装输出。
p_csv_separator 用于CSV以分隔列值。
p_pdf_accessible 用于PDF以创建可访问的PDF。
p_xml_include_declaration 用于XML以生成XML声明作为第一行。

总结:

 通过简单使用感觉APEX功能比较完善,能快速的构建出业务应用;导出接口功能比较完善,支持灵活。

 对于自己实现相关导出功能有参考价值。 

参考资料:

 https://blogs.oracle.com/apex/exploring-report-printing-in-apex-202

 https://docs.oracle.com/en/database/oracle/application-express/20.2/aeapi/APEX_DATA_EXPORT-EXPORT-Function.html#GUID-6109A537-50C4-4FB2-8414-7A554B19EC8E

APEX-数据导出/打印的更多相关文章

  1. 导出/打印项目数据报表需要设置IE浏览器

    导出/打印项目数据报表需要设置IE浏览器如下: 1.将本地服务器站点设置为可信站点, 2.通过点击网页上的工具→Internet选项→安全→自定义级别→把关于activeX控件和插件的选项都设置成启用 ...

  2. Qt编写数据导出到Excel及Pdf和打印数据

    一.前言 用Qt开发已经九年了,期间用Qt做过不少的项目,在各种项目中有个功能很常用,尤其是涉及到数据记录存储的项目,那就是需要对查询的数据进行导出到Excel,或者导出到Pdf文件,或者直接打印查询 ...

  3. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  4. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  5. excel数据导出新妙招

    之前在做项目的时候需要将数据库中的数据导出为excel表格一遍打印查阅,在网上找了很多插件也没有找到自己理想的好用的插件(也就是说没有找到令我满意的插件),最近在学习a标签的相关知识时理解到,a标签不 ...

  6. Magic xpa 3.x很容易将数据导出到Excel中

    Magic xpa 3.x很方便的将表中数据导出到Excel文件中,还可以自动将表中数据生成各种图表. 通过使用自带的打印数据内部事即可实现. 1.首先将打印数据任务属性设置为“是”. 2.可使用主程 ...

  7. 将mysql数据库的数据导出做成excl表格通过邮件发送附件发给指定人

    mysql数据库的数据导出成excl表 方法一: mysql -uroot -p123456 -e “select *.* from 表 into outfile ‘文件路径.xls’into out ...

  8. php 数据导出到excel 2种带有合并单元格的导出

    具体业务层面 可能会有所不同.以下两种方式涉及的合并单元格地方有所不同,不过基本思路是一致的. 第一种是非插件版本.可能更容易理解点,基本思路就是 组装table 然后 读取 输出到excel上.缺点 ...

  9. python学习笔记3.2_数据导出

    一.data.to_csv:数据导出 1.to_csv:将数据导出为逗号分隔的文件 2.输出为其他分隔符的文件 写入到控制台,并打印:sys.stdout na_rep:对空值进行标注 二.serie ...

随机推荐

  1. Mac小白用户都能体验Windows应用的轻量级软件

    近期,苹果在WWDC大会上表示Mac电脑将转向ARM架构,这意味着为iPhone手机.iPad平板和Mac电脑应用APP提供了统一的可能性.也就是说,iPhone手机.iPad平板电脑的应用可能在Ma ...

  2. iOS7使用iOS8上的方法报错处理

    问题描述 我们经常会遇到在低版本上使用高版本方法导致的bug,例如: WebKit discarded an uncaught exception in the webView:decidePolic ...

  3. LeetCode周赛#206

    1583. 统计不开心的朋友 #模拟 #暴力 题目链接 题意 有n为朋友,对每位朋友i,preference[i]包含 按亲密度从大到小 的朋友编号. 朋友们会被分为若干对,配对情况由pairs数组给 ...

  4. finalize和clean

    弊端 1.执行的时间不确定,资源释放不能靠这2个方法.Cleaner规范指出:"清除方法在System.exit期间的行为是与实现相关的.不确保清除动作是否会被调用." 2#.如果 ...

  5. 【mq学习笔记】mq 过期文件删除机制

    broker不会关注这个文件上的消息是否全部被消费.默认每个文件的过期时间为72小时.

  6. [整理]qbxt集训10场考试 大 杂 烩 (前篇)

    Contest 1 A 计算 \(n!\mod 2^{32}\) .发现数一大答案就为 \(0\) ,直接输出即可. B 一个 \(n\times m\) 的网格,网格中的数都在 \([1,nm]\) ...

  7. Docker 跨平台在 netCore 中的从入门到部署

    前言 从题目我们可以看的出,今天是五部曲的第三部,你可能会好奇,为啥没有见到前两部呢?这里我简单说下: 1.跨平台第一部曲:MySql 如果你看我的所有开源项目,应该能发现我已经全部迁移到了Mysql ...

  8. 基于CefSharp开发(三)浏览器头部优化

    一.上文回顾 上编实现了简单的网页加载功能包括URL输入.打开空标签页.网页链接中新页面处理等 本编将对网页的Title绑定.前进.后退.刷新等事件处理 二.Title绑定处理 当打开网页时Title ...

  9. moviepy音视频剪辑:mask clip遮罩剪辑、遮片、蒙版的作用以及其包含的构成内容

    ☞ ░ 前往老猿Python博文目录 ░ 在阅读moviepy的类ImageClip的构造方法代码时,对于其中涉及遮罩的处理没有理解,到处查找遮罩的资料没有查到,最后到moviepy的官网上尝试了一下 ...

  10. 第十七章、Model/View开发:QListView的功能及属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView是从QAbstractItemView 派生的类,实现了QAbstrac ...