明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 570|回复: 5

[提问] 如何返回excel单元格设置格式后显示的数值

[复制链接]
发表于 2024-7-6 18:21:44 | 显示全部楼层 |阅读模式
     采用lisp提取excel单元格数值,并转为字符串格式。其中单元格A1的值为123.123456,设置小数位数为2位,即单元格中显示为123.12,采用如下代码提取单元格数值。

  1. (setq excel (vlax-get-or-create-object "excel.application"))
  2. (Vlax-Put-Property excel 'Visible -1 )
  3. (setq cells (vlax-get (vlax-get-property (vlax-get-property excel 'activeworkbook) 'activesheet) "cells"))
  4. (setq ce (vlax-get-property cells "item" 1 1))
  5. (setq a (Vlax-Get (vlax-variant-value ce) 'Value2 ))
  6. (setq b (rtos a))
  7. (setq c (vl-prin1-to-string a))
返回结果如下:
a,实型(real),屏幕显示123.123,实际数值为123.123456
b,字符串(str),123.1235,保留4位有效数字
c,字符串(str),123.123,与cad屏幕显示数值保持一致。
    但是我希望返回的字符串与单元格设置格式后显示的数值保持一致,即显示2为小数,123.12.请教各位大佬,这个应该怎么实现。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-7-6 20:52:55 | 显示全部楼层
找到字符串小数点后面两位,截断.不足,补0
 楼主| 发表于 2024-7-6 23:14:33 | 显示全部楼层
你有种再说一遍 发表于 2024-7-6 20:52
找到字符串小数点后面两位,截断.不足,补0

谢谢大佬,这个我知道,但是提取excel表格,我希望生成的cad表格和excel表格一致,excel单元格会设置格式,可能取整,也可能保留两位或三位小数点,这个设置是不确定的。
发表于 2024-7-6 23:40:39 | 显示全部楼层
不要取value2属性,取text属性
 楼主| 发表于 2024-7-7 00:15:11 来自手机 | 显示全部楼层
kozmosovia 发表于 2024-7-6 23:40
不要取value2属性,取text属性

好的,谢谢您,我试试。
 楼主| 发表于 2024-7-7 00:29:31 | 显示全部楼层
  1. (setq excel (vlax-get-or-create-object "excel.application"))
  2. (Vlax-Put-Property excel 'Visible -1 )
  3. (setq cells (vlax-get (vlax-get-property (vlax-get-property excel 'activeworkbook) 'activesheet) "cells"))
  4. (setq ce (vlax-get-property cells "item" 1 1))
  5. (setq a (Vlax-Get (vlax-variant-value ce) 'text ))


按照kozmosovia大神的建议,取单元格的text属性,得到的就是设置属性后的文本,结果如下:
a,字符串(str),123.12

再次感谢kozmosovia大神。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 13:38 , Processed in 0.163547 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表