只需一步,快速开始
我编的一个从excel中读取指定列数据的代码,我想把读出的数据都以字符串的形式列表.
可是如果表中的值是字符的话会自动列表成字符串,如("c1" "c2" "c3" "c4" "c5" "c6" "c7" "c8" "c9"),
表中如果是数据就不是了,如(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0)
而且我excel中存的只是11,12,13这样的,为什么读出来自动多了个小数点呢?
请大侠指教,谢谢
使用道具 举报
你可将(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0)此转换成你要的格式
(defun changelst(lst /);;;lst--(13.0 23.0 33.0 43.0 53.0 63.0 73.0 83.0 93.0) (if lst (progn (setq i 0 len(length lst) stringlst '()) (while (< i len) (setq stringlst(append (list(rtos (nth i lst) 2 0)) stringlst)) (setq i(1+ i)) ) (setq stringlst(reverse stringlst)) ) ) stringlst )
;;stringlst返回值为("13" "23" "33" "43" "53" "63" "73" "83" "93")
可在读取excel时,并不知道里面是整数还是实数,还是字符串,有办法判断吗?如果是实数,我只要加一个(rtos [I]cell[/I]),如果是整数就加一个(itoa [I]cell[/I]),或者有什么不管是什么类型都转成字符串的函数吗?谢谢
刚看到别的帖子里有个type,我想到这个
(cond( (= (type cell[/I]) INT) (setq cell[/I] (itoa [I]cell[/I]) )( (= (type [I]cell[/I]) REAL) (setq [I]cell[/I] (rtos [I]cell[/I] 2 0) )( (= (type [I]cell) STR) [I]cell ))
不知行不行?
应该可以
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-8-13 05:34 , Processed in 0.188303 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.