问题描述
你好,
我一直在使用Tom提供的OWA_Sylk软件包:https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:769425837805
现在,我需要执行以下操作,这在此版本的软件包中是不可能的:
1-显示网格
2-导出日期列(不仅是文本)
3-将标题字体着色为红色
我面临的问题:
1-p_sow_grid =>'是'仅在标题列的基础上,而不显示边框。为什么?
2-我尝试使用更新后的owa_sylk包,该包具有额外的格式化功能,由Bill B在2007-05-21 08:10提供,此处为:http://db-pub.com/forum-80341886-2/excel-report-not-formatting-correctly-in-sql-plus-multi-merge.html
因此,基本上,我设置了P_TYPES参数,指定列类型为“T”-文本,“N”-数字或“D”-日期,如下代码所示。但是这个解决方案没有工作,因为生成的Excel文件无法加载日期列(REQDTET)。
还有其他的解决方法吗?
3-我生成了Excel文件,并将其保存为sylk。我把字体颜色改为红色,然后我将结果保存在一个新的sylk文件中。最后,我生成了两个文件之间的差异,并得到了下面的结果。
所以问题是:如何通过此差异检测需要添加到代码中的内容?
您能提供最新的owa_sylk包吗?提供的那些都很旧(至少是我在网上找到的)。
旧的SYSLK文件(提取以显示差异) :
-----------------------------------------------
P;Ecourier新; M200;SB;L9
F;P0;DG0G8;M300
B;Y295;X10;D0 0 294 9
O;D;V0;K47;G100 0.001
F;W1 1 7
F;W2 2 10
F;W3 3 6
F;W4 4 10
F;W5 5 18
F;W6 6 20
F;W7 7 13
F;W8 8 17
F;W9 9 9
F;W10 10 14
F;P0;FG0R;SDM1;C1
F;P0;FG0R;C2
F;P0;FG0R;C3
F;P0;FG0R;C4
F;P0;FG0R;C5
F;P0;FG0R;C6
F;P0;FG0R;C7
F;P0;FG0R;C8
F;P0;FG0R;C9
F;P0;FG0R;C10
F;P0;FG0C;SDM2;R1
C;Y1;X2;N;K"ENDPOINTID"
C;X3;N;K"MFRID"
C;X4;N;K"DIVISIONID"
C;X5;N;K"TRUNC(REQDATETIME)"
C;X6;N;K"USERID"
C;X7;N;K"TOTALPRODUCTS"
C;X8;N;K"COMPLETEDPRODUCTS"
C;X9;N;K"STATUS"
C;X10;N;K"PO"
C;Y3;X2;N;K"360230CL"
标题中带有红色字体的新SYSLK文件(提取以显示差异) :
-----------------------------------------------
P;Ecourier新; M200;SB;L9
P;Ecourier新; M200;SBU;L11
F;P0;DG0G8;M300
B;Y295;X10;D0 0 294 9
O;D;V0;K47;G100 0.001
F;W1 1 7
F;W2 2 10
F;W3 3 6
F;W4 4 10
F;W5 5 18
F;W6 6 20
F;W7 7 13
F;W8 8 17
F;W9 9 9
F;W10 10 14
F;P0;FG0R;SDM1;C1
F;P0;FG0R;C2
F;P0;FG0R;C3
F;P0;FG0R;C4
F;P0;FG0R;C5
F;P0;FG0R;C6
F;P0;FG0R;C7
F;P0;FG0R;C8
F;P0;FG0R;C9
F;P0;FG0R;C10
F;P0;FG0C;SDM2;R1
F;SDM24;Y1;X2
C;N;K"端点ID"
F;SDM24;X3
C;N;K"M FriD"
F;SDM24;X4
C;N;K“分区”
F;SDM24;X5
C;N;K"中继(请求日期时间) "
F;SDM24;X6
C;N;K "用户"
F;SDM24;X7
C;N;K“总产品”
F;SDM24;X8
C;N;K“成品”
F;SDM24;X9
C;N;K“状态”
F;SDM24;X10
C;N;K"PO"
C;Y3;X2;N;K"360230CL"
代码:
-----
宣布
输出utl_file.file_type ;
开始
输出:= utl_file.fOpen ('UTL_DIR', trunc(当前_日期) |'-'||'CORDIS'||'-申请.xls','w') ;
owa_sylk. show(
p_file =>输出,
p_query =>'SELECT终结点ID, MFRID, SDIID, TO_D(TO_CHAR(REQD,:P3),:P3) REQDED时间,已完成的产品,状态
来源申请
其中, MFRID =:P1 ,状态=:P2
和TRUNC(ReQDate时间) >系统日期- 30
',
p_parm_names =>
owa_sylk.owaSylkArray ('P1','P2','P3') ,
p_parm_values =>
owa_sylk.owaSylkArray ('CORDIS','完成','mm/dd/yyyy') ,
p_显示_grid =>'是',
p_types => owa_sylk.owaSylkArray ('T','T','T','D','N','T') );
utl_file.f关闭(输出);
结束;
/
我一直在使用Tom提供的OWA_Sylk软件包:https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:769425837805
现在,我需要执行以下操作,这在此版本的软件包中是不可能的:
1-显示网格
2-导出日期列(不仅是文本)
3-将标题字体着色为红色
我面临的问题:
1-p_sow_grid =>'是'仅在标题列的基础上,而不显示边框。为什么?
2-我尝试使用更新后的owa_sylk包,该包具有额外的格式化功能,由Bill B在2007-05-21 08:10提供,此处为:http://db-pub.com/forum-80341886-2/excel-report-not-formatting-correctly-in-sql-plus-multi-merge.html
因此,基本上,我设置了P_TYPES参数,指定列类型为“T”-文本,“N”-数字或“D”-日期,如下代码所示。但是这个解决方案没有工作,因为生成的Excel文件无法加载日期列(REQDTET)。
还有其他的解决方法吗?
3-我生成了Excel文件,并将其保存为sylk。我把字体颜色改为红色,然后我将结果保存在一个新的sylk文件中。最后,我生成了两个文件之间的差异,并得到了下面的结果。
所以问题是:如何通过此差异检测需要添加到代码中的内容?
您能提供最新的owa_sylk包吗?提供的那些都很旧(至少是我在网上找到的)。
旧的SYSLK文件(提取以显示差异) :
-----------------------------------------------
P;Ecourier新; M200;SB;L9
F;P0;DG0G8;M300
B;Y295;X10;D0 0 294 9
O;D;V0;K47;G100 0.001
F;W1 1 7
F;W2 2 10
F;W3 3 6
F;W4 4 10
F;W5 5 18
F;W6 6 20
F;W7 7 13
F;W8 8 17
F;W9 9 9
F;W10 10 14
F;P0;FG0R;SDM1;C1
F;P0;FG0R;C2
F;P0;FG0R;C3
F;P0;FG0R;C4
F;P0;FG0R;C5
F;P0;FG0R;C6
F;P0;FG0R;C7
F;P0;FG0R;C8
F;P0;FG0R;C9
F;P0;FG0R;C10
F;P0;FG0C;SDM2;R1
C;Y1;X2;N;K"ENDPOINTID"
C;X3;N;K"MFRID"
C;X4;N;K"DIVISIONID"
C;X5;N;K"TRUNC(REQDATETIME)"
C;X6;N;K"USERID"
C;X7;N;K"TOTALPRODUCTS"
C;X8;N;K"COMPLETEDPRODUCTS"
C;X9;N;K"STATUS"
C;X10;N;K"PO"
C;Y3;X2;N;K"360230CL"
标题中带有红色字体的新SYSLK文件(提取以显示差异) :
-----------------------------------------------
P;Ecourier新; M200;SB;L9
P;Ecourier新; M200;SBU;L11
F;P0;DG0G8;M300
B;Y295;X10;D0 0 294 9
O;D;V0;K47;G100 0.001
F;W1 1 7
F;W2 2 10
F;W3 3 6
F;W4 4 10
F;W5 5 18
F;W6 6 20
F;W7 7 13
F;W8 8 17
F;W9 9 9
F;W10 10 14
F;P0;FG0R;SDM1;C1
F;P0;FG0R;C2
F;P0;FG0R;C3
F;P0;FG0R;C4
F;P0;FG0R;C5
F;P0;FG0R;C6
F;P0;FG0R;C7
F;P0;FG0R;C8
F;P0;FG0R;C9
F;P0;FG0R;C10
F;P0;FG0C;SDM2;R1
F;SDM24;Y1;X2
C;N;K"端点ID"
F;SDM24;X3
C;N;K"M FriD"
F;SDM24;X4
C;N;K“分区”
F;SDM24;X5
C;N;K"中继(请求日期时间) "
F;SDM24;X6
C;N;K "用户"
F;SDM24;X7
C;N;K“总产品”
F;SDM24;X8
C;N;K“成品”
F;SDM24;X9
C;N;K“状态”
F;SDM24;X10
C;N;K"PO"
C;Y3;X2;N;K"360230CL"
代码:
-----
宣布
输出utl_file.file_type ;
开始
输出:= utl_file.fOpen ('UTL_DIR', trunc(当前_日期) |'-'||'CORDIS'||'-申请.xls','w') ;
owa_sylk. show(
p_file =>输出,
p_query =>'SELECT终结点ID, MFRID, SDIID, TO_D(TO_CHAR(REQD,:P3),:P3) REQDED时间,已完成的产品,状态
来源申请
其中, MFRID =:P1 ,状态=:P2
和TRUNC(ReQDate时间) >系统日期- 30
',
p_parm_names =>
owa_sylk.owaSylkArray ('P1','P2','P3') ,
p_parm_values =>
owa_sylk.owaSylkArray ('CORDIS','完成','mm/dd/yyyy') ,
p_显示_grid =>'是',
p_types => owa_sylk.owaSylkArray ('T','T','T','D','N','T') );
utl_file.f关闭(输出);
结束;
/
专家解答
Sylk只是一种内部的MS格式, (据我所知)并没有真正广泛地记录下来。
https://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK )
所以owa_sylk是在那个时候写的,但我怀疑你还能找到任何进一步的扩展。
如果您不希望采用完整的第三方解决方案,可能更好的选项是:
https://technology.amis.nl/2011/02/19/create-an-excel-file-with-plsql/
希望这个能帮上忙。
https://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK )
所以owa_sylk是在那个时候写的,但我怀疑你还能找到任何进一步的扩展。
如果您不希望采用完整的第三方解决方案,可能更好的选项是:
https://technology.amis.nl/2011/02/19/create-an-excel-file-with-plsql/
希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。