我在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压缩才能编写此类文件.