转:XMLP报表导出为excel时设置文本不自动转为数字

转自:http://yedward.net/?id=337

 

对于这个问题,只要在RTF模版中设置下强制LTR即可,设置方法如下:

勾选强制LTR

图1:勾选强制LTR

也可以自己输入下面的代码:

<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?C6?></fo:bidi-override>

把上面的C6换成指定的字段。

强制LTR的作用,官方解释如下:

Force LTR (Left-to-Right) Direction:This option is only needed if you are using the template in a language that displays characters from right to left, such as Arabic or Hebrew. Use this option to force left-to-right printing for fields such as phone numbers, addresses, postal codes, or bank account numbers.

另外,对于同时还要设置格式掩码的情况,如果如上图1的类型中选择了数字,那么会发现勾选了“强制LTR”也不会生效。那么这里可以设置类型为“常规文本”,格式先不设置,然后勾选“强制LTR”(如果发现这里勾选了还没有生效,就直接在word属性设置中自己添上上面的代码),然后点击进入“word属性”,使用Oracle Format Mask的掩码格式来设置,如下图2所示:

设置Oracle Format Mask和LTR

图2:设置Oracle Format Mask和LTR

设置好以后,再次预览报表,如下图3所示:

Excel预览效果

图3:Excel预览效果

会发现,不仅3位以上的数字格式发生了变化,就连3位以下的数字也发生了变化,不管有无小数位,都统一保留两位,要的就是这效果。

更多RTF模版设置技巧,可参考Oracle官方文档《Creating RTF Templates》。

 

posted @ 2016-03-22 14:03  pompeii  阅读(371)  评论(0编辑  收藏  举报