如何用lsp打开相对路径的excel文件
本帖最后由 leedun 于 2024-5-16 17:13 编辑请教各位前辈,有咩有什么办法能实现打开相对路径下的excel文件
;;;名称: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) 飞雪神光 发表于 2024-5-15 07:59
感谢前辈回复,我把代码修改之后打不开文件,应该是我不会改的问题,麻烦前辈直接赐予代码
以下是绝对路径代码
(defun c:ZBCL()
(startapp "C:\\Program Files (x86)\\Microsoft Office\\Office16\\EXCEL.EXE" "D:\\数据处理.xlsm")
)
代码需求是我把文件所在文件夹设置支持搜索路径,根据文件名用代码打开,感谢! 菜卷鱼 发表于 2024-5-14 14:57
(startapp
"C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"
"E:\\我的 ...
感谢回复,我的代码就是这样写的,要打开的文件地址能不能用相对路径,或者支持搜索路径 有啊先用系统变量获得相对路径 再打开文件 飞雪神光 发表于 2024-5-14 07:45
有啊先用系统变量获得相对路径 再打开文件
可以用lsp设置打开文件吗 可以的 有相关操作Excel函数 (startapp
"C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"
"E:\\我的文档\\通讯录\\2016.11.04通讯录.xls"
) 飞雪神光 发表于 2024-5-14 07:48
可以的 有相关操作Excel函数
我现在的代码是(startapp "C:\\Program Files (x86)\\Microsoft Office\\Office16\\EXCEL.EXE" "E:\\数据处理V2.0.xlsm"),如何用相对路径啊,请前辈指教 (strcat (getvar "DWGPREFIX") "数据处理V2.0.xlsm")
或者
(strcat (getvar "DWGPREFIX") (vl-filename-base (getvar "DWGNAME")) ".xlsm")
页:
[1]
2