【问题标题】:Extract data from oracle to multiple sheets in excel将oracle中的数据提取到excel中的多张工作表中
【发布时间】:2013-02-04 15:33:29
【问题描述】:

有什么方法可以将 oracle 表中的数据提取到 Excel 中的多个工作表中?

例如:我有两个表checkpointshold。我希望来自checkpoints 的数据转到MS excelsheet1 和来自hold 的数据转到sheet2

这可以在oracle中实现吗?

Oracle version: Oracle 11G

  • 编辑: 我想使用 PL/SQL 来实现它。此代码将作为批处理作业执行。

【问题讨论】:

标签: oracle excel oracle11g


【解决方案1】:

如果您要生成的电子表格非常简单(即只有带有数据的单元格和多张工作表),您可以尝试Alexandria PL/SQL Library 中的 Excel 生成 API - 只需获取 XLSX_BUILDER_PKG 和它的依赖项(我不认为有很多),它应该可以完成这项工作。

我自己使用它来生成 XLSX 格式的简单电子表格,并且全部使用 PL/SQL。它以 BLOB 形式返回结果,如果您需要数据库服务器上的结果,库中还有另一个例程用于使用 UTL_FILE 将其输出。

【讨论】:

  • 是的,我需要一个非常简单的 0 格式的 Excel 表格,只是文本。
【解决方案2】:

当然有可能,但这取决于您希望如何完成。

1) 如果您有报告工具(Jasper Reports、Oracle BI),您可以使用该工具创建报告并导出数据。

2) 如果您有开发工具(Toad、SQL Developer),您可以“手动”导出这两个表。

3) 如果您知道如何编写代码,那么您可以使用 API 创建 Excel 文件并用数据填充它。您可以使用 PL/SQL、PHP、C、C++ 或几乎任何其他语言,只需要一个 Oracle API 和一个 Excel API。

【讨论】:

  • 我需要使用 PL/SQL 来执行此操作。此代码将作为批处理作业执行。
【解决方案3】:

有 PL/SQL 包可以创建包含多个工作表的 Excel 文档,并将 SQL 查询中的数据放到单独的工作表中。

请看下面的例子:

BEGIN  
    ORA_EXCEL.new_document;  

    ORA_EXCEL.add_sheet('Employees');  
    ORA_EXCEL.query_to_sheet('select * from employees');  

    ORA_EXCEL.add_sheet('Departments');  
    ORA_EXCEL.query_to_sheet('select * from departments', FALSE);  

    ORA_EXCEL.add_sheet('Locations');  
    ORA_EXCEL.query_to_sheet('select * from locations');  

    -- EXPORT_DIR is an Oracle directory with at least  
    -- write permission  
    ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');  
END; 

您可以在此处找到更多详细信息: http://www.oraexcel.com/examples/pl-sql-excel-query-to-sheet-export

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多