3

我的系统是用APEX/Oracle 11g开发的,想直接创建xls文件,不用创建xml文件。系统当前创建了一个xml文件,然后可以保存为xls格式,但是非常挑剔的用户不喜欢尝试打开xml文件时的Windows 7警告(Excel警告文件格式不与其扩展名不匹配)。有什么方法可以在 APEX 中使用 Oracle PL/SQL 来完成此任务?

4

3 回答 3

3

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/

在包头中使用很好的示例非常简单。

于 2012-10-18T06:37:51.697 回答
1

您可以使用 Java 存储过程

http://docs.oracle.com/cd/B28359_01/java.111/b31225/chfive.htm

和阿帕奇 Poi

http://poi.apache.org/spreadsheet/index.html

创建实际的电子表格并将其存储在 lob 字段中,然后返回给用户

于 2012-10-04T21:09:49.627 回答
1

您可以使用 OraExcel 包生成真正的 xlsx 文件(二进制形式)。使用该软件包,您可以像在 Excel 中一样格式化单元格并应用样式。

它有一个简单的 API,您可以在其中逐步创建 Excel 文件并描述每个单元格的外观。

完成 Excel 文件后,可以选择将 xlsx 文件生成为 PL/SQL BLOB 变量,该变量可以返回到 APEX 并下载。

没有让您的客户感到烦恼的警告。

您可以编写一个简单的函数,如下所示,创建一个 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

干杯

于 2013-02-03T11:17:25.810 回答