明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1184|回复: 11

[提问] 如何用lsp打开相对路径的excel文件

[复制链接]
发表于 2024-5-13 21:37:47 | 显示全部楼层 |阅读模式
本帖最后由 leedun 于 2024-5-16 17:13 编辑

请教各位前辈,有咩有什么办法能实现打开相对路径下的excel文件
发表于 2024-5-16 18:03:39 | 显示全部楼层
  1. ;;;名称:BF-Excel-Open
  2. ;;;说明:打开一个excel文件
  3. ;;;参数:Filename:文件路径
  4. ;;;参数:ishide:是否可见,t为可见,nil为不可见
  5. ;;;返回:一个表示打开的excel文件的vla对象
  6. ;;;示例BF-Excel-Open "C:\\Users\\vic\\Desktop\\1.xlsx" t)
  7. (Defun BF-Excel-Open (filename ishide / ActiveSheet ExcelApp Rtn Sheets WorkSheet)
  8.         ;(setq filename (strcase filename))
  9.         ;(if (null (wcmatch filename "*.xls"))
  10.         ;  (setq filename (strcat filename ".xls"))
  11.         ;)
  12.   (if (and (findfile filename)
  13.                                 (setq Rtn (vlax-get-or-create-object "Excel.Application"))
  14.       )
  15.     (progn
  16.       (vlax-invoke
  17.                                 (vlax-get-property Rtn 'WorkBooks)
  18.                                 'Open
  19.                                 filename
  20.       )
  21.       (if ishide
  22.                                 (vla-put-visible Rtn 1)
  23.                                 (vla-put-visible Rtn 0)
  24.       )
  25.     )
  26.   )
  27.   Rtn
  28. )
  29. (BF-Excel-Open "D:\\数据处理.xlsm" t)
  30. (BF-Excel-Open (strcat (getvar "DWGPREFIX") "数据处理.xlsm") t)
 楼主| 发表于 2024-5-16 17:12:05 | 显示全部楼层

感谢前辈回复,我把代码修改之后打不开文件,应该是我不会改的问题,麻烦前辈直接赐予代码
以下是绝对路径代码
(defun c:ZBCL()
(startapp "C:\\Program Files (x86)\\Microsoft Office\\Office16\\EXCEL.EXE" "D:\\数据处理.xlsm")
)
代码需求是我把文件所在文件夹设置支持搜索路径,根据文件名用代码打开,感谢!
 楼主| 发表于 2024-5-14 19:49:41 | 显示全部楼层
菜卷鱼 发表于 2024-5-14 14:57
(startapp
    "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"
    "E:\\我的 ...

感谢回复,我的代码就是这样写的,要打开的文件地址能不能用相对路径,或者支持搜索路径
发表于 2024-5-14 07:45:17 | 显示全部楼层
有啊  先用系统变量获得相对路径 再打开文件
 楼主| 发表于 2024-5-14 07:46:37 | 显示全部楼层
飞雪神光 发表于 2024-5-14 07:45
有啊  先用系统变量获得相对路径 再打开文件

可以用lsp设置打开文件吗
发表于 2024-5-14 07:48:32 | 显示全部楼层
可以的 有相关操作Excel函数
发表于 2024-5-14 14:57:49 | 显示全部楼层
(startapp
    "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"
    "E:\\我的文档\\通讯录\\2016.11.04通讯录.xls"
  )
 楼主| 发表于 2024-5-14 22:47:40 | 显示全部楼层
飞雪神光 发表于 2024-5-14 07:48
可以的 有相关操作Excel函数

我现在的代码是(startapp "C:\\Program Files (x86)\\Microsoft Office\\Office16\\EXCEL.EXE" "E:\\数据处理V2.0.xlsm"),如何用相对路径啊,请前辈指教
发表于 2024-5-15 07:59:40 | 显示全部楼层
  1. (strcat (getvar "DWGPREFIX") "数据处理V2.0.xlsm")
  2. 或者
  3. (strcat (getvar "DWGPREFIX") (vl-filename-base (getvar "DWGNAME")) ".xlsm")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-23 18:00 , Processed in 0.371007 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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