B batconv Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #1 我把数据读入excel时发现,excel会自动把字符串缩短,如读入“199901010011600132”,单元格显示出来的却是“1.9999E+18”,如何把它还原成“199901010011600132”?如何设置方能使其不变形?我已经把列宽设置的足够大了。
我把数据读入excel时发现,excel会自动把字符串缩短,如读入“199901010011600132”,单元格显示出来的却是“1.9999E+18”,如何把它还原成“199901010011600132”?如何设置方能使其不变形?我已经把列宽设置的足够大了。
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #2 在你的字符串前面加一个'(单引号)来解决好了,这样就是字符串操作了,你那么长的数字写入excel的时候,被当作数字处理了,所以采用了科学计数的方式显示了.这是笨办法,望高手来点好的办法.
B batconv Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #3 谢谢cqwty,可是这样会在前面有个明显的可视字符,有没有不影响美观的不可视字符可以达到同样要求,或者有什么其它办法,望不吝赐教!
Z zhouyou155 Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #4 你的excel是模板嗎?是的話可以把模板的格式換為數字格式.... 如果不是的話..那就要動態設置了..
B batconv Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #5 谢谢大家参与! 我找到了一个办法,就是先用StrToIntDef或Trystrtoint来判断准备写入的字符串是否可转化为数字格式,然后用ExcelApp.ActiveSheet.Cells.Item.numberformatlocal:='@'; 来固定格式,这样就可以了。 但是我又出现个问题,就是StrToIntDef或Trystrtoint都不支持太长的字符串,如“199901010”它可以判断符合数字格式,但“199901010011600132”它就认为不符合了,但显而易见两个都是数字啊,而且我已经把首尾和中间的空格都去掉了呀!郁闷中...
谢谢大家参与! 我找到了一个办法,就是先用StrToIntDef或Trystrtoint来判断准备写入的字符串是否可转化为数字格式,然后用ExcelApp.ActiveSheet.Cells.Item.numberformatlocal:='@'; 来固定格式,这样就可以了。 但是我又出现个问题,就是StrToIntDef或Trystrtoint都不支持太长的字符串,如“199901010”它可以判断符合数字格式,但“199901010011600132”它就认为不符合了,但显而易见两个都是数字啊,而且我已经把首尾和中间的空格都去掉了呀!郁闷中...
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #6 哈哈,这个都为难你了啊?你把这个字符串打断撒,分为几次来判断,如果每个部分都能转化成数字,那是不是连接起来也是数字嘛?当然注意判断小数点号哈,首先判断这个字符串里面是不是最多只有一个小数点符号,如果是,那就打断成合适的长度,用你上面的函数判断好了撒.这样问题解决了吧.换种方法,只要结果一样,那就行了.爱因斯坦不是也把鸡蛋砸破,然后解决鸡蛋立起来的问题嘛,打破一下常规的思维,嘿嘿!
哈哈,这个都为难你了啊?你把这个字符串打断撒,分为几次来判断,如果每个部分都能转化成数字,那是不是连接起来也是数字嘛?当然注意判断小数点号哈,首先判断这个字符串里面是不是最多只有一个小数点符号,如果是,那就打断成合适的长度,用你上面的函数判断好了撒.这样问题解决了吧.换种方法,只要结果一样,那就行了.爱因斯坦不是也把鸡蛋砸破,然后解决鸡蛋立起来的问题嘛,打破一下常规的思维,嘿嘿!
B batconv Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #7 现在的关键问题已经不再是cqwty兄所说的问题了,而是长度太长了后连StrToIntDef或Trystrtoint都不支持了,这样的话我就无从判断输入的字符串是数字还是文本了[]
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #8 你的意思是不是说输入的过长了,导致你用上面两个函数无法判断?如果是,你仔细看我上面介绍的办法,就是将输入的字符串打断成几个部分啊,如果每个部分都可以用你的两个函数转成数字,那合起来是不是就可以了?这个难道不行嘛?
你的意思是不是说输入的过长了,导致你用上面两个函数无法判断?如果是,你仔细看我上面介绍的办法,就是将输入的字符串打断成几个部分啊,如果每个部分都可以用你的两个函数转成数字,那合起来是不是就可以了?这个难道不行嘛?
R ruoxi_shuai Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #9 在读到表里之前,你先把该字段设为字符型数据,这样excel就不回把它当作数字了.
B batconv Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-08 #10 to ruoxi_shuai: 问题是我之前并不知道这个字段是数字格式,而且这个字段并不全是数字 to cqwty: 谢谢,你的方法虽然麻烦点,但是可行。