如何在 Oracle PLSQL 中以 "text" 格式保存 excel 文件?
How to save an excel file in the "text" format in Oracle PLSQL?
我在 WHEN BUTTEN PRESSED 表单中存在按钮的触发器中编写了代码。该代码保存了一个 excel 文件,如下所示:
DECLARE
OUT_FILE TEXT_IO.FILE_TYPE;
---
CURSOR CUR_1 IS
SELECT V.NO ,
V.DATE
FROM V_RECEIPT V
---
BEGIN
OUT_FILE := TEXT_IO.FOPEN('D:\EXPORT_EXCEL\'||:GLOBAL.USRNAME||'.CSV','W');
---
TEXT_IO.PUT(OUT_FILE,'SEP = ;');
TEXT_IO.NEW_LINE(OUT_FILE);
TEXT_IO.PUT(OUT_FILE,' NO_RECEIPT ; DATE_RECEIPT ');
TEXT_IO.NEW_LINE(OUT_FILE);
---
FOR X IN CUR_1 LOOP
TEXT_IO.PUT(OUT_FILE, '00001' || ';' );
TEXT_IO.PUT(OUT_FILE, X.DATE );
---
TEXT_IO.NEW_LINE(OUT_FILE);
END LOOP;
---
TEXT_IO.FCLOSE(OUT_FILE);
---
END;
问题在于,在输出 excel 文件中,指定为文本“00001”的列被保存为“1”。我不知道是否有办法确定 excel 单元格格式是否为 'text'。
有什么解决办法吗?
要将值解释为字符串而不将它们转换为.CSV 文件中除字符串以外的数据类型,请编写如下代码:
TEXT_IO.PUT(OUT_FILE, '"=""00001"""' || ';' );
还有这个:
TEXT_IO.PUT(OUT_FILE, '"=""' || X.DATE || '"""' || ';' );
我在 WHEN BUTTEN PRESSED 表单中存在按钮的触发器中编写了代码。该代码保存了一个 excel 文件,如下所示:
DECLARE
OUT_FILE TEXT_IO.FILE_TYPE;
---
CURSOR CUR_1 IS
SELECT V.NO ,
V.DATE
FROM V_RECEIPT V
---
BEGIN
OUT_FILE := TEXT_IO.FOPEN('D:\EXPORT_EXCEL\'||:GLOBAL.USRNAME||'.CSV','W');
---
TEXT_IO.PUT(OUT_FILE,'SEP = ;');
TEXT_IO.NEW_LINE(OUT_FILE);
TEXT_IO.PUT(OUT_FILE,' NO_RECEIPT ; DATE_RECEIPT ');
TEXT_IO.NEW_LINE(OUT_FILE);
---
FOR X IN CUR_1 LOOP
TEXT_IO.PUT(OUT_FILE, '00001' || ';' );
TEXT_IO.PUT(OUT_FILE, X.DATE );
---
TEXT_IO.NEW_LINE(OUT_FILE);
END LOOP;
---
TEXT_IO.FCLOSE(OUT_FILE);
---
END;
问题在于,在输出 excel 文件中,指定为文本“00001”的列被保存为“1”。我不知道是否有办法确定 excel 单元格格式是否为 'text'。 有什么解决办法吗?
要将值解释为字符串而不将它们转换为.CSV 文件中除字符串以外的数据类型,请编写如下代码:
TEXT_IO.PUT(OUT_FILE, '"=""00001"""' || ';' );
还有这个:
TEXT_IO.PUT(OUT_FILE, '"=""' || X.DATE || '"""' || ';' );