YAOSHIWEI 发表于 2012-6-1 18:19:02

为什么创建excel的方法不一样啊

(defun c:xl-test1()
(vl-load-com)
(if (equal nil msxl-acos)
    (vlax-import-type-library
      :tlb-filename      "C:\\Program Files\\Microsoft Office\\Office11\\Excel.exe"
:methods-prefix"msxl-"
:properties-prefix"msxl-"
:constants-prefix"msxl-"
    )
)
(setq XLapp(vlax-get-object "Excel.Application"))
(if (null XLapp)
      (setq XLapp (vlax-create-object "Excel.Application"))
)
另一种方法是论坛上的
(Defun gxl-word-app-Init
       (/ OSVar GGG Olb8 Olb9 Olb10 TLB Out msg msg1 msg2)

    (setq msg"\n 初始化微软Word "
         msg1 "\042初始化Word错误\042"
         msg2 (strcat
               "\042 警告"
               "\n ===="
               "\n 无法在您的计算机上检测到微软Word软件"
               "\n 如果您确认已经安装Word, 请发送电子邮"
               "\n 件到Gu_xl@sohu.com获取更多的解决方案\042"
            )
    )
(if (null mswc-wd100Words)
    (progn
      (if (and (setq GGG
                  (vl-registry-read
                     "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.EXE"
                     "Path"
                  )
            )
            (setq GGG (strcase (strcat GGG "Winword.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 "MSWORD.OLB" "WINWORD.EXE" GGG))
         )
         (cond((= (vl-filename-base (vl-filename-directory GGG))
                  "OFFICE11"
               )
               (setq TLB Olb8
                     Out "2003"
               )
            )
((= (vl-filename-base (vl-filename-directory GGG))
                  "OFFICE12"
               )
               (setq TLB Olb8
                     Out "2007"
               )
            )
            (t (setq Out "Version Unknown"))
         )
         (if TLB
         (progn
             (princ (strcat MSG Out "..."))
             (vlax-import-type-library
            :tlb-filename    TLB               :methods-prefix
            "mswm-"             :properties-prefix
            "mswp-"             :constants-prefix "mswc-"
            )
         )
         )
       )
       (progn
         (if vldcl-msgbox
(vldcl-msgbox "x" msg1 msg2)
(alert (read msg2))
)
         (exit)
       )
      )
    )
)
mswc-wd100Words
)
;;;创建Word Application
;;;(setq wordapp (gxl-word-app-New 1))
(Defun gxl-word-app-New (UnHide / Rtn)
(if (gxl-word-app-init)
    (progn
      (if (setq Rtn (vlax-get-or-create-object "Word.Application"))
       (progn
         (vlax-invoke-method
         (vlax-get-property Rtn 'Documents)
         'Add
         )
         (if UnHide
         (vla-put-visible Rtn :vlax-true)
         (vla-put-visible Rtn :vlax-false)
         )
       )
      )
    )
)
Rtn
)
;;;打开Word文件
;;;(setq wordapp (gxl-word-app-open (getfiled "选择文件" "" "doc" 0) 1))
(Defun gxl-word-app-open (DocFile UnHide /Rtn)
(setq DocFile (strcase DocFile))
(if (null (wcmatch DocFile "*.DOC"))
    (setq DocFile (strcat DocFile ".DOC"))
)
(if (and (findfile DocFile)
          (setq Rtn (vlax-get-or-create-object "Word.Application"))
      )
    (progn
;|
      (vlax-invoke-method
       (vlax-get-property Rtn 'Documents)
(vla-get-Documents rtn)
       'Open
       DocFile
      )
      |;
      (mswm-open (vla-get-Documents rtn) DocFile)
      (if UnHide
       (vla-put-visible Rtn :vlax-true)
       (vla-put-visible Rtn :vlax-false)
      )
    )
)
Rtn
)
;;; (gxl-word-app-save (vla-get-ActiveDocument wordapp)) 保存word文档
(Defun gxl-word-app-save (DocObj)
(mswm-Save DocObj)
)
这是我发现的不同 之处,希望有人可以为我解答


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 YAOSHIWEI的微博

YAOSHIWEI 发表于 2012-6-1 18:22:13

我怎么感觉 不对啊是不是哪个地方有问题,上面那一个是我在书上看到的,下面那个是论坛上的,这两个有区别吗
页: [1]
查看完整版本: 为什么创建excel的方法不一样啊