theisland 发表于 2015-12-4 08:26:56

求一个打开指定excel文件的程序

希望可以打开当前图纸所在文件夹内的名为“工程材料统计”的电子表格。

比如某文件夹内有文件如下:
图纸1.dwg
工程材料统计.xls
……
当前CAD打开“图纸1”,运行程序,打开工程材料统计.xls,ok!

敬请大侠出手相助,谢谢了!

Linhay 发表于 2015-12-4 08:26:57

(defun c:tt(/ path filename)
(setq path (getvar "DWGPREFIX"))
(setq filename (strcat path "工程材料统计.xls"))
(DSX-Open-Excel-Exist filename "show")
)

(defun DSX-Open-Excel-Exist (xfile dmode / appsession)
(princ "\n打开 Excel 电子表格文件...")
(cond
( (setq fn (findfile xfile))
(cond
( (setq appsession (vlax-get-or-create-object "Excel.Application"))
(vlax-invoke-method
(vlax-get-property appsession 'WorkBooks)
'Open fn
)
(if (= (strcase dmode) "SHOW")
(vla-put-visible appsession 1)
(vla-put-visible appsession 0)
)
)
)
)
( T (alert (strcat "\n不能找到指定的文件: " xfile)) )
)
appsession
)函数是收集的,不清楚原作者是谁

伪书虫86 发表于 2015-12-4 09:11:49

试试看(defun c:cs()
        (vlxls-app-open (strcat (getvar 'DWGPREFIX) "工程材料统计.xls") T)
)


;0·打开xls
;|
Examples:
(setq *xlapp* (vlxls-app-open "C:/test.XLS" T))==>#<VLA-OBJECT _Application 001efd2c>
|;
(defun vlxls-app-open
   (XLSFile UnHide / ExcelApp WorkSheet Sheets ActiveSheet Rtn)
   (setq XLSFile (strcase XLSFile))
   (if (null (wcmatch XLSFile "*.XLS" ))
      (setq XLSFile (strcat XLSFile ".XLS" ))
   )
   (if (and (findfile XLSFile) (setq Rtn (vlax-get-or-create-object "Excel.Application" )))
      (progn
         (vlax-invoke-method
            (vlax-get-property Rtn 'WorkBooks)
            'Open
            XLSFile
         )
         (if UnHide
            (vla-put-visible Rtn 1)
            (vla-put-visible Rtn 0)
         )
      )
   )
   Rtn
)

theisland 发表于 2015-12-4 14:22:52

Linhay 发表于 2015-12-4 09:27 static/image/common/back.gif
函数是收集的,不清楚原作者是谁

很完美,感激一百遍!

jltx123456 发表于 2015-12-4 14:32:11

theisland 发表于 2015-12-4 14:22 static/image/common/back.gif
很完美,感激一百遍!

楼主还是自学吧,不能总是想着别人跟你写代码
你可以看看BenjaminXM发的贴子 ,这才是来论坛学习的!
http://bbs.mjtd.com/home.php?mod=space&uid=7307327&do=thread&view=me&from=space
你如果总是求,跟flytoday有何分别? 恐成过街老鼠.......

theisland 发表于 2015-12-4 14:53:50

jltx123456 发表于 2015-12-4 14:32 static/image/common/back.gif
楼主还是自学吧,不能总是想着别人跟你写代码
你可以看看BenjaminXM发的贴子 ,这才是来论坛学习的!
http ...

我是听同事说碰到CAD中的大部分问题都可以在明经社区找到答案,我信了,并且确实得到了很多帮助,很感激大家!我没时间学习编程,觉得好复杂,我只是希望有需求时,能得到及时的帮助,所得程序我仅仅在自己的工作中用到,我也觉得做伸手党很不好,因此考虑用人民币充值,考虑到我大明经社区有自己的纪律,我也试着去程序申请区发帖,但感觉回应很少、很慢甚至没有,所以才在这里申请。请原谅我的不守规矩,但说到底我就是一个很纯粹希望在我大明经社区寻求答案的人,并无心专研编程技术,以后我还是按管理员规定在指定板块发帖求程序吧,我不会亏待帮我的人,合理的报酬可以谈,请各位武艺精湛的“职业杀手”加我好友吧!再次表达抱歉,顺便说一句,我不知道谁是flytoday……,我相信我的所为对得起任何人

lucas_3333 发表于 2015-12-4 17:19:29

楼主,问题解决了, 请将主题置为"已解决" ,页面右上角有个黄色按钮

lxy_2080 发表于 2016-4-2 01:51:13

学习了,,,。。。。
页: [1]
查看完整版本: 求一个打开指定excel文件的程序