明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1453|回复: 2

[提问] 这段读取excel的代码那里出错了?如何修改!多谢!

[复制链接]
发表于 2016-2-26 14:02:04 | 显示全部楼层 |阅读模式
学习了一下大师langjs《沉降过程图绘制》中的读取excel,用了其中一部分,但是总是出问题!
运行第一次的时候没有问题,但是再次运行的时候就不行了调试的时候也没问题,可是到CAD里面运行的

时候就又不行了,折腾了很久,后来发现在任务管理器中把excel的进程结束后又可以运行了,我想应该是
程序后面没有结束excel的调用,导致文件处于打开状态,所以再第一次运行成功后,再次运行程序的时候
就无法打开文件了!
现在关键是不知道如何结束excel的调用!请大师们看看如何修改下面这段代码?多谢了!


(defun c:rex( )
  (vl-load-com)
  (setq oldfil "d:\\tmp.et")

(setq appsession (vlax-create-object "Excel.Application"))
(vlax-invoke-method (vlax-get-property appsession 'WorkBooks) 'open oldfil)
(vla-put-visible appsession 0)
(setq excelapp (vlax-get-object "Excel.Application"))
(setq wb (vlax-get-property excelapp 'activeworkbook)) ; excel工作簿对象
(setq sh (vlax-get-property wb 'activesheet)) ; excel工作表对象
(setq range0 (vlax-get-property sh 'range "A65536"))
(setq e (vlax-get-property (vlax-get-property range0 'end -4162) 'row))
(setq cells (vlax-get sh "cells"))
(setq i 2)
(while ( < i  ( 1+ e))
        (setq str (rexcel cells i)) ; 读取第i行
        (princ "\n")
        (princ str)
        (setq i (1+ i))
      )  
  (cond
        ((not (vlax-object-released-p appsession))
          (vlax-invoke-method appsession 'quit)
          (vlax-release-object appsession)
        )
      )
)

;=========================
;读取excel行自定义函数

(defun rexcel (cells i / j zh z)
    (setq zh nil
          z nil
          j 1
    )
    (while ( < j 9  )
      (setq z (vlax-variant-value (vlax-variant-change-type (vlax-get-property cells 'item i j) 8)))
      (setq zh (append zh (list(list z))))
      (setq j (1+ j))
    )
    zh
  )


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2016-2-26 14:24:08 | 显示全部楼层
把(setq appsession (vlax-create-object "Excel.Application"))
改成
(setq appsession (vlax-get-or-create-object "Excel.Application"))
 楼主| 发表于 2016-2-26 14:37:41 | 显示全部楼层
kozmosovia 发表于 2016-2-26 14:24
把(setq appsession (vlax-create-object "Excel.Application"))
改成
(setq appsession (vlax-get-or-cr ...

多谢多谢!成功了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 20:20 , Processed in 0.189606 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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