微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用oracle apex中的应用程序单击按钮时,如何下载插入n张工作表的excel

如何解决使用oracle apex中的应用程序单击按钮时,如何下载插入n张工作表的excel

如何在oracle apex中使用应用程序单击按钮时插入n张表格的excel..请帮助我..

我创建了页面,当点击按钮 excel 文件将与数据一起下载时..现在我需要在同一个 excel 中添加额外数量的工作表。我想在一张 excel 中显示所有不同的数据表。

我正在使用程序

    Create or replace PROCEDURE emp_Csv(o_Clobdata OUT CLOB) IS 
  l_Blob         BLOB; 
  l_Clob         CLOB; 
  
BEGIN 
 
  Dbms_Lob.Createtemporary(Lob_Loc => l_Clob,Cache   => TRUE,Dur     => Dbms_Lob.Call); 
  SELECT Clob_Val 
    INTO l_Clob 
    FROM (SELECT Xmlcast(Xmlagg(Xmlelement(e,Col_Value || Chr(13) || 
                                           Chr(10))) AS CLOB) AS Clob_Val,COUNT(*) AS Number_Of_Rows 
            FROM (SELECT 'empno,ename,sal,mgrno,hiredate,deptno' AS Col_Value 
                    FROM Dual 
                  UNION ALL 
                  SELECT empno||',' ||ename||','|| sal||','|| mgrno||','|| hiredate||','|| deptno AS Col_Value 
                    FROM (SELECT empno,deptno from emp))); 
 
  o_Clobdata := l_Clob; 
EXCEPTION 
  WHEN OTHERS THEN 
    NULL; 
END;
and i am using the application process is
DECLARE
    L_BLOB           BLOB;
    L_CLOB           CLOB;
    L_DEST_OFFSET    INTEGER := 1;
    L_SRC_OFFSET     INTEGER := 1;
    L_LANG_CONTEXT   INTEGER := DBMS_LOB.DEFAULT_LANG_CTX;
    L_WARNING        INTEGER;
    L_LENGTH         INTEGER;
BEGIN

    -- create new temporary BLOB
    DBMS_LOB.CREATETEMPORARY(L_BLOB,FALSE);
    
    --get CLOB
    emp_csv( L_CLOB);
    
    -- tranform the input CLOB into a BLOB of the desired charset
    DBMS_LOB.CONVERTTOBLOB( DEST_LOB     => L_BLOB,SRC_CLOB     => L_CLOB,AMOUNT       => DBMS_LOB.LOBMAXSIZE,DEST_OFFSET  => L_DEST_OFFSET,SRC_OFFSET   => L_SRC_OFFSET,BLOB_CSID    => NLS_CHARSET_ID('WE8MSWIN1252'),LANG_CONTEXT => L_LANG_CONTEXT,WARNING      => L_WARNING
                          );

    -- determine length for header
    L_LENGTH := DBMS_LOB.GETLENGTH(L_BLOB);  

    -- first clear the header
    HTP.FLUSH;
    HTP.INIT;

    -- create response header
    OWA_UTIL.MIME_HEADER( 'text/csv',FALSE);

    HTP.P('Content-length: ' || L_LENGTH);
    HTP.P('Content-disposition: attachment; filename="emp_data.csv"');
    HTP.P('Set-Cookie: fileDownload=true; path=/');

    OWA_UTIL.HTTP_HEADER_CLOSE;

    -- download the BLOB
    WPG_DOCLOAD.DOWNLOAD_FILE( L_BLOB );

    -- stop APEX
   -- APEX_APPLICATION.STOP_APEX_ENGINE;
  EXCEPTION
    WHEN OTHERS THEN
      DBMS_LOB.FREETEMPORARY(L_BLOB);
      RAISE;
END;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。