xyz2009xyz 发表于 2016-7-29 12:23:50

怎么把cad里面提取的字符串值写到EXCEL指定单元格中去

怎么把cad里面提取的字符串值写到EXCEL指定单元格中去。EXCCEL已经打开,但是不能执行。麻烦指点一下,刚开始学习操作excel不大会

(defun C:EC2()
(vl-load-com)
(setq str "新版图框标准")
(setq excelapp0 (vlax-get-object "Excel.Application"))
;;excel程序对象,Application 对象
(setq activeworkbook0 (vlax-get-property excelapp0 'ActiveWorkbook))
;;excel工作簿对象
(setq activesheet0 (vlax-get-property activeworkbook0 'ActiveSheet))
;;excel工作表对象
(setq cells0 (vlax-get-property activesheet0 'cells))
;;excel单元格对象
(vlxls-cell-put-value activesheet0 "A11" str)
)

(defun vlxls-cell-put-value
   (xl id Data / vllist-explode idx xx yy ary Rtn)
   (defun vllist-explode (lst)
      (cond
         ((not lst) nil)
         ((atom lst) (list lst))
         ((append (vllist-explode (car lst))
                        (vllist-explode (cdr lst))
               )
         )
      )
   )
   (if (null id) (setq id "A1" ))
   (if (= (type id) 'list) (setq id (vlxls-rangeid id)))
   (if (= (type (car Data)) 'LIST)
      (setq   ARY    (vlax-make-safearray
                     vlax-vbstring
                     (cons 0 (1- (length Data)))
                     (cons 1 (length (car Data)))
                  )
            XX (1- (length (car Data)))
            YY (1- (length Data))
      )
      (setq   ARY    (vlax-make-safearray
                     vlax-vbstring
                     (cons 0 1)
                     (cons 1 (length Data))
                  )
            XX (1- (length Data))
            YY 0
      )
   )
   (if (= xx yy 0)
      (msxl-put-value2
         (setq Rtn (msxl-get-range xl id))
         (car (vllist-explode data))
      )
      (progn
         (setq id (vlxls-cellid-calc id xx yy))
         (msxl-put-value2
            (setq Rtn (msxl-get-range xl id))
            (vlax-safearray-fill ary data)
         )
      )
   )
   Rtn
)

永不言弃 发表于 2016-7-30 08:55:28

缺少函数                                 

xyz2009xyz 发表于 2016-7-30 09:53:38

永不言弃 发表于 2016-7-30 08:55 static/image/common/back.gif
缺少函数

能否更明白些

xyz2009xyz 发表于 2016-7-30 09:54:11

永不言弃 发表于 2016-7-30 08:55 static/image/common/back.gif
缺少函数

能否更明白些,没有提示缺函数

永不言弃 发表于 2016-7-30 09:58:57

msxl-put-value2   msxl-get-range   msxl-put-value2   msxl-get-range
这些函数都没有

fan_zh 发表于 2016-8-2 11:09:16

最近正好也在研究这个,附件是必备函数,首先要初始化

xyz2009xyz 发表于 2016-8-2 11:45:25

fan_zh 发表于 2016-8-2 11:09 static/image/common/back.gif
最近正好也在研究这个,附件是必备函数,首先要初始化

多谢,刚开始不会,现在已经可以基本操作写入读出了。互相交流。

llsheng_73 发表于 2016-8-3 01:33:54

要先初始化好了才能使用它的函数
另外,对于有的GHOST版系统直接安装好的msoffice的情况,有可能
(vlax-get-object "Excel.Application")或者(vlax-creat-object "Excel.Application")不能成功获取或者创建excel对象,它甚至可以导致初始化无法成功,或者初始化后也可能无法正常获取或者创建excel对象而无法使用
如果碰到这种问题,自己安装msoffice就可以了

fan_zh 发表于 2016-8-25 15:36:31

llsheng_73 发表于 2016-8-3 01:33 static/image/common/back.gif
要先初始化好了才能使用它的函数
另外,对于有的GHOST版系统直接安装好的msoffice的情况,有可能
(vlax-g ...

你好,请问有没有vlisp方面的书,很想系统学一下
页: [1]
查看完整版本: 怎么把cad里面提取的字符串值写到EXCEL指定单元格中去