EBS: RTF+XML报表导出EXCEL数值转文本

在EBS系统中新做一个报表导出EXCEL文件,

工号以 ”0“开头,导出excel会变成整形把”0“全部去掉。

后来在RTF模板中增加:

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

格式化为文本,这样保留了自然数前面的“0”。

解决一个问题。引发另一个问题。

用户反映导出来的资料,不能通过工号引用姓名过来。

处理EXCEL资料时常会遇到一些数值不能运算,因为它存不可见的未知字符 ,如:"?" 即 char(63)  或换行符 char(10) ,char(13), char(32) 等等。 

假设单元格 A1 = 00102 

在EXCEL中 用LENB(A1)  返回 值为7 ,怎么这大呢?目测应该是5。

这说它隐藏着两个字符,如:换行符、表格符。

EXCEL里 CODE(A1) 返回 第一个字符的 ASCII 的值为“63”,或将值 复制到sql server 分析器中, 明显地显示

字符串前后各有一个空格符,用SELECT UNICODE(' ')  查 UNICODE 值,返回 63. 对照 ASCII表,是一个 问号“?”

知道即原因,就容易解决问题。

在EXCEL中通过截取字符函数 重新取值排除不可见符【char(63)】,

在B1单元格的公式:  =MID(A1,2,LENB(A1)-2) 

含意: 从第二位开始截取,截取长度为 总长度减2 。

优质生活从拆开始
原文地址:https://www.cnblogs.com/samrv/p/15248349.html