G版的这个检测Excel函数如何修改可以支持ecxel2016版本?
现在最高只支持到excel2013版本,无法识别excel2016版本。(Defun vlxls-app-Init
(/ OSVar GGG Olb8 Olb9 Olb10 TLB Out msg msg1 msg2)
(if *Chinese*
(setq msg"\n 初始化微软Excel "
msg1 "\042初始化Excel错误\042"
msg2 (strcat
"\042 警告"
"\n ===="
"\n 无法在您的计算机上检测到微软Excel软件"
"\n 如果您确认已经安装Excel, 请发送电子邮"
"\n 件到kozmosovia@hotmail.com获取更多的解决方案\042")
)
(setq msg"\n Initializing Microsoft Excel "
msg1 "\042Initialization Error\042"
msg2 (strcat
"\042 WARNING" "\n ======="
"\n Can NOT detect Excel97/200X/XP in your computer"
"\n If you already have Excel installed, please email"
"\n us to get more solution via GuXiaolin@hxch.com.cn\042")
)
)
(if (null msxlc-xl24HourClock)
(progn
(if (and (setq GGG
(vl-registry-read
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE"
"Path"
)
)
(setq GGG (strcase (strcat GGG "Excel.EXE")))
)
(progn
(foreach OSVar(list "SYSTEMROOT" "WINDIR"
"WINBOOTDIR" "SYSTEMDRIVE"
"USERNAME" "COMPUTERNAME"
"HOMEDRIVE" "HOMEPATH"
"PROGRAMFILES")
(if (vl-string-search (strcat "%" OSVar "%") GGG)
(setq GGG (vl-string-subst
(strcase (getenv OSVar))
(strcat "%" OSVar "%")
GGG
)
)
)
)
(setq Olb8(findfile
(vl-string-subst "EXCEL8.OLB" "EXCEL.EXE" GGG))
Olb9(findfile
(vl-string-subst "EXCEL9.OLB" "EXCEL.EXE" GGG))
Olb10 (findfile (vl-string-subst
"EXCEL10.OLB"
"EXCEL.EXE"
GGG))
)
(cond
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE15"
)
(setq TLB GGG
Out "2013"
)
)
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE14"
)
(setq TLB GGG
Out "2010"
)
)
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE12"
)
(setq TLB GGG
Out "2007"
)
)
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE11"
)
(setq TLB GGG
Out "2003"
)
)
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE10"
)
(setq TLB GGG
Out "XP"
)
)
(Olb9
(setq TLB Olb9
Out "2000"
)
)
(Olb8
(setq TLB Olb8
Out "97"
)
)
(t (setq TLB GGG Out "Version Unknown"))
)
(if TLB
(progn
(princ (strcat MSG Out "..."))
(vlax-import-type-library
:tlb-filename TLB
:methods-prefix "msxl-"
:properties-prefix "msxlp-"
:constants-prefix"msxlc-")
)
)
)
(progn
;|(if vldcl-msgbox
(vldcl-msgbox "x" msg1 msg2)
(alert (read msg2))
)|;
(alert msg2)
(exit)
)
)
)
)
msxlc-xl24HourClock
)
照猫画虎添加进去啊 昨天刚刚遇到这个问题,没想应有帖子反馈了。 安装offcie2016完整版的只需要添加
((= (vl-filename-base (vl-filename-directory GGG))
"OFFICE16"
)
(setq TLB GGG
Out "2016"
)
)
就可以了,绿色版或者精简版的不行。 lxdz443 发表于 2021-11-23 19:43
安装offcie2016完整版的只需要添加
((= (vl-filename-base (vl-filename-directory GGG))
...
原来如此,我昨天照着“烟盒迷唇”大佬说的照猫画虎的方法,如法炮制,但是不行。
页:
[1]