使用两个工作表将两个表的数据导出到一个Excel中

时间:2014-11-18 11:36:52

标签: excel oracle export-to-excel

我正在使用Oracle数据库,我需要将两个表中的数据导出到一个Excel文件中,该文件包含两个使用SQL脚本的工作表。我使用以下代码在' final_output.xls'中创建两个工作表。通过将其引用到2个名为' Source1.xls'的独立xls文件来归档文件。和' Source2.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 ;

2 个答案:

答案 0 :(得分:0)

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

薄纱,

答案 1 :(得分:0)

很简单:

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并尝试...