使用PL / SQL创buildxls文件,而无需通过xml
我的系统是在APEX / Oracle 11g中开发的,我想直接创build一个xls文件,而不必创build一个xml文件。 系统目前创build一个xml文件,然后可以将其保存为xls格式,但是当用户尝试打开xml文件时,非常挑剔的用户不喜欢Windows 7警告(Excel警告文件的格式确实不符合其扩展名)。 有没有办法在APEX中使用Oracle PL / SQL来完成这个任务?
Morten Braten提供了一个很棒的PLSQL资源页面: http : //code.google.com/p/plsql-utils/
特别是Anton Scheffer已经分享了他的软件包AS_XLSX,以满足您的APEX需求: http ://technology.amis.nl/2011/02/19/create-an-excel-file-with-plsql/
在包头中使用很好的例子非常简单。
您可以使用Java存储过程
http://docs.oracle.com/cd/B28359_01/java.111/b31225/chfive.htm
和Apache Poi
http://poi.apache.org/spreadsheet/index.html
创build实际的电子表格并将其存储在lob字段中,并返回给用户
您可以使用OraExcel包生成真正的xlsx文件(二进制forms)。 使用这个包,你可以像在Excel中一样格式化单元格和应用样式。
它有一个简单的API,您可以逐步创buildExcel文件,并描述每个单元格的样子。
当您完成Excel文件时,可以select将xlsx文件生成为PL / SQL BLOBvariables,并将其返回到APEX并下载。
没有任何警告让您的客户恼火。
您可以编写一个简单的函数,如下所示,创build一个Excel电子表格并将其返回给APEX:
CREATE OR REPLACE FUNCTION get_excel RETURN BLOB IS my_blob BLOB; BEGIN ora_excel.new_document; ora_excel.add_sheet('My sheet'); ora_excel.query_to_sheet('SELECT field1, field2, field2 FROM my_table'); ora_excel.save_to_blob(my_blob); RETURN my_blob; END;
有更多的例子: http : //www.oraexcel.com/examples
干杯