从Oracle Apex 4.0.2用户帐户将* .xlsx或* .xls中的数据加载到Oracle表

时间:2016-09-22 17:48:47

标签: excel oracle csv file-upload oracle-apex

我需要一些帮助,使用Oracle Apex 4.0.2用户帐户将数据从Excel文件( *。xlsx,* .xls )加载到Oracle 11。

我找到并修改了一个加载* .cvs文件的进程。此过程的工作原理如下:

  1. *。csv 文件加载到 BLOB 列。
  2. 插入表格后,执行Process
  3. 此过程将每一行插入表格
  4. 我希望你能帮我编写类似的代码,但不是加载* .csv而是希望它能用于Excel文件。

    Oracle Apex 4.0.2要加载Workshop,但只允许加Developers,我想创建此过程,以便Users自行加载数据

4 个答案:

答案 0 :(得分:1)

您为什么不升级到顶级5.0,或者至少升级到4.2? "数据加载" 4.1中添加了组件,为您提供了快速开发此精确要求的方法。 4.0现在很古老,不再受支持。

加载xlsx或xls与加载CSV有很大不同。我再次问,为什么不更新。有一些插件可以将excel文件处理成集合,甚至是XLSX。但是,你的顶点版本太低了。 你在脚下射击自己 e。并非没有可用的编码选项,但仍然如此。

如果您仍然因某些原因而无法升级,请关注xlsx文件。它们本质上是带有大量文件的zip文件。我在2012年写了这篇博客。http://tpetrus.blogspot.be/2012/09/a-non-standard-export-to-excel-2010-xlsx.html

它仍然相关,我只链接它,因为它包含代码的所有内容。它不是万无一失,但有限制。可能还有其他方法。 4.0不太好。

答案 1 :(得分:0)

Anton Scheffer开发的一个很棒的软件包允许您使用xls或xlsx文件(一旦作为blob上传)作为表并执行查询操作,如:

-- every sheet and every cell
    select *
    from table( as_read_xlsx.read( as_read_xlsx.file2blob( 'DOC', 'Book1.xlsx' ) ) )
--
-- cell A3 from the first and the second sheet
    select *
    from table( as_read_xlsx.read( as_read_xlsx.file2blob( 'DOC', 'Book1.xlsx' ), '1:2', 'A3' ) )
--
-- every cell from the sheet with the name "Sheet3"
    select *
    from table( as_read_xlsx.read( as_read_xlsx.file2blob( 'DOC', 'Book1.xlsx' ), 'Sheet3' ) )

然后您可以根据需要使用数据。

Here's the code

答案 2 :(得分:0)

是。有一天,我做了类似的事。 我通过Apex插件调用“Excel2collection”使用oracle apex在oracle数据库表中上传了一些Excel文件(* .xlsx,* .xls)。 实际上我首先将excel文件加载到apex集合表中,然后将其从集合移动到oracle数据库。 在这里,我提供了我的博客链接,我在这里逐步编写完整的流程。 Link: qaiumer.blogspot.com

答案 3 :(得分:-1)

Excel2Collection插件很难被击败。这个安东的解决方案捆绑在一个APEX插件中。这样,您可以将文件浏览项目提供给流程,并让它吐出APEX Collection记录

演示: https://apex.oracle.com/pls/apex/f?p=52007:6:::NO :::

插件: http://www.apex-plugin.com/oracle-apex-plugins/process-type-plugin/excel2collections_271.html