【问题标题】:Export data of two tables into a single Excel with two worksheets将两个表的数据导出到具有两个工作表的单个 Excel 中
【发布时间】:2015-01-15 14:04:36
【问题描述】:

我正在使用 Oracle 数据库,我需要使用 SQL 脚本将两个表中的数据导出到具有两个工作表的单个 Excel 文件中。我正在使用以下代码在“final_output.xls”文件中创建两个工作表,方法是将其引用到名为“Source1.xls”和“Source2.xls”的 2 个独立 xls 文件。但是使用这种方法的缺点是最终的输出文件依赖于它的引用。如果任何源文件被删除,则不会显示任何数据。

有没有办法使用 SQL 脚本将两个表的数据直接填充到单个 excel 文件的两个工作表中?请注意,由于我必须为客户使用它,所以我不能使用任何第三方工具或任何未经许可的代码。

spool final_output.xls

prompt <HTML xmlns:x="urn:schemas-microsoft-com:office:excel">
prompt  <HEAD>
prompt <meta name="Excel Workbook Frameset">
prompt   <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
prompt   <meta content="Excel.Sheet" name="ProgId">
prompt   <meta content="Microsoft Excel 11" name="Generator">
prompt   <LINK href="#ab">
prompt   <LINK href="#xy">
prompt <!--[if gte mso 9]><xml>
prompt  <x:ExcelWorkbook>
prompt   <x:ExcelWorksheets>
prompt    <x:ExcelWorksheet>
prompt     <x:Name>Report</x:Name>
prompt     <x:WorksheetSource HRef="Source1.xls"/>
prompt    </x:ExcelWorksheet>
prompt    <x:ExcelWorksheet>
prompt     <x:Name>Case_Num</x:Name>
prompt     <x:WorksheetSource HRef="Source2.xls"/>
prompt    </x:ExcelWorksheet>
prompt   </x:ExcelWorksheets>
prompt  </x:ExcelWorkbook>
prompt </xml><![endif]-->
prompt  </HEAD>
prompt  <body>
prompt  </body>
prompt </HTML>
spool off

set markup html on spool on
spool Source1.xls
set heading off

select * from T1;

spool off

spool Source2.xls

select * from T2 ;

spool off
set markup html off spool off

exit ;

【问题讨论】:

标签: excel oracle export-to-excel


【解决方案1】:

您应该使用由 Anton Scheffer (http://technology.amis.nl/tag/as_xlsx/) 创建的 AS_XLSX 包。我正在使用它从数据库中生成各种报告。该软件包是免费的,与 Excel 2010 兼容,支持多表和格式(以及更多)。

纯色,

【讨论】:

    【解决方案2】:

    很简单:

    BEGIN
    ... 
    as_xlsx.clear_workbook;
    as_xlsx.new_sheet ('test1');
    ... 
    as_xlsx.new_sheet ('test2');
    ... 
    as_xlsx.save (p_directory => '<your_directory>', p_filename => '<your_file>');
    END;
    /
    

    查看 API 并尝试...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多