2010年4月20日星期二

ADF_078:Table 组件使用指南之八:导出Table数据时保持原有数据格式

开发环境:JDeveloper 11.1.2.1.0 + Oracle XE Database 10gR2。

使用Table的export excel 功能时,数据001001001 导出后变为 1001001;1:3 导出后变为 01:03。


经过分析发现是Excel自身的问题:Excel默认把001001001当成数字,把1:3当成时间,如果在Excel中直接输入也是这样。
但还是有办法解决的,使用Excel中的CONCATENATE函数,生成形如=CONCATENATE("","001001001")和=CONCATENATE("","1:3"),欺骗一下Excel就可以了。
具体做法是:
<af:outputText value="=CONCATENATE('','" inlineStyle="display:none"/>
<af:outputText value="#{row.LastName}" id="ot14"/>
<af:outputText value="')" inlineStyle="display:none"/>
当然这只是临时的做法,Oracle ADF开发小组已经承认这是一个BUG: ER 9767110,以后应该会在导出时,有相关属性可以设置。

注意,我在使用JDeveloper 11.1.2.1.0重新实验时,发现并没有成功显示出想要的结果。待查。

没有评论: