加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

使用Oracle中的UTL_FILE包在ExcelSheet中编写

发布时间:2021-03-30 22:30:14 所属栏目:站长百科 来源:网络整理
导读:我在excel表中写入数据没有问题,它存储在一些预定义的目录中. 现在我有10组数据,每组我必须创建10个单独的excel表. 但我想要的是创建工作簿conating sheet1,sheet2. Sheet10.这将有10套记录.如果我的问题不明确,请告诉我. 我正在使用PL / SQL Oracle 9i 我的

我在excel表中写入数据没有问题,它存储在一些预定义的目录中.

现在我有10组数据,每组我必须创建10个单独的excel表.
但我想要的是创建工作簿conating sheet1,sheet2. Sheet10.这将有10套记录.如果我的问题不明确,请告诉我.

我正在使用PL / SQL Oracle 9i

我的代码将为一组数据写入excel.如果我有更多的数据集并且我不想拥有多个excel表而是我想要一个带有差异表的工作簿,该怎么办?

CREATE OR REPLACE PROCEDURE SP_ORACLE_EXCEL(I_FILE_NAME    IN VARCHAR2) AS

  FILENAME  UTL_FILE.FILE_TYPE;
  FILENAME1 VARCHAR2(1000);
  CURSOR C1 IS
    SELECT * FROM MY_TABLE;
  VARC1 C1%ROWTYPE;
BEGIN

  FILENAME1   := 'TEST_' || I_FILE_NAME || '_' || SYSDATE || '.CSV';

  FILENAME    := UTL_FILE.FOPEN('TEMP_DIR',FILENAME1,'W');

  /* THIS WILL CREATE THE HEADING IN EXCEL SHEET */
    UTL_FILE.PUT_LINE(FILENAME,'HEADER1' || ',' || 'HEADER2' || ',' || 'HEADER3' || ',' ||
                    'HEADER4' || ',' || 'HEADER5');
  OPEN C1;
  LOOP
    FETCH C1
       INTO VARC1;
    EXIT WHEN C1%NOTFOUND;
     /*  THIS WILL PRINT THE RECORDS IN EXCEL SHEET AS PER THE QUERY IN CURSOR */
    UTL_FILE.PUT_LINE(FILENAME,'"' || VARC1.COL1 || '"' || ',' || '"' ||
                      VARC1.COL2 || '"' || ',' || '"' ||
                      VARC1.COL3 || '"' || ',' || '"' ||
                      VARC1.COL4 || '"' || ',' || '"' ||
                      VARC1.COL5|| '"');


  END LOOP;

  UTL_FILE.FCLOSE(FILENAME);

END SP_ORACLE_EXCEL;

解决方法

我不知道有任何现成的实现.

自07年以来的Excel文件(.xslx)实际上是包含每个工作表的单独xml文件的zip存档.

他们使用的XML模式是pretty straight forward.您必须使用Java来创建文件夹并进行zip压缩才能编写此类文件.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读