leedun 发表于 2024-5-13 21:37:47

如何用lsp打开相对路径的excel文件

本帖最后由 leedun 于 2024-5-16 17:13 编辑

请教各位前辈,有咩有什么办法能实现打开相对路径下的excel文件

飞雪神光 发表于 2024-5-16 18:03:39

;;;名称:BF-Excel-Open
;;;说明:打开一个excel文件
;;;参数:Filename:文件路径
;;;参数:ishide:是否可见,t为可见,nil为不可见
;;;返回:一个表示打开的excel文件的vla对象
;;;示例:(BF-Excel-Open "C:\\Users\\vic\\Desktop\\1.xlsx" t)
(Defun BF-Excel-Open (filename ishide / ActiveSheet ExcelApp Rtn Sheets WorkSheet)
        ;(setq filename (strcase filename))
        ;(if (null (wcmatch filename "*.xls"))
        ;(setq filename (strcat filename ".xls"))
        ;)
(if (and (findfile filename)
                                (setq Rtn (vlax-get-or-create-object "Excel.Application"))
      )
    (progn
      (vlax-invoke
                                (vlax-get-property Rtn 'WorkBooks)
                                'Open
                                filename
      )
      (if ishide
                                (vla-put-visible Rtn 1)
                                (vla-put-visible Rtn 0)
      )
    )
)
Rtn
)
(BF-Excel-Open "D:\\数据处理.xlsm" t)
(BF-Excel-Open (strcat (getvar "DWGPREFIX") "数据处理.xlsm") t)

leedun 发表于 2024-5-16 17:12:05

飞雪神光 发表于 2024-5-15 07:59


感谢前辈回复,我把代码修改之后打不开文件,应该是我不会改的问题,麻烦前辈直接赐予代码
以下是绝对路径代码
(defun c:ZBCL()
(startapp "C:\\Program Files (x86)\\Microsoft Office\\Office16\\EXCEL.EXE" "D:\\数据处理.xlsm")
)
代码需求是我把文件所在文件夹设置支持搜索路径,根据文件名用代码打开,感谢!

leedun 发表于 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

有啊先用系统变量获得相对路径 再打开文件

leedun 发表于 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"
)

leedun 发表于 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

(strcat (getvar "DWGPREFIX") "数据处理V2.0.xlsm")
或者
(strcat (getvar "DWGPREFIX") (vl-filename-base (getvar "DWGNAME")) ".xlsm")
页: [1] 2
查看完整版本: 如何用lsp打开相对路径的excel文件