明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 223|回复: 5

[基础] Vlisp向word里面的文本框写入数据

[复制链接]
发表于 2024-7-8 23:52 | 显示全部楼层 |阅读模式

1 . 获取word进程对象

(setq Rtn (vlax-get-or-create-object "Word.Application"))
2 . 获取Documents对象
(setq doc (vlax-invoke-method
      (vlax-get-property Rtn 'Documents)
      'Open
      wjm
    ))
3 . 获取Documents对象中的range对象
(setq Rge(vlax-invoke-method
      doc
      'Range
    ))
4 . 获取shapeRange对象
(setq Shapes(vlax-get-property
      Rge
      'shapeRange
    ))
5 . 获取shapeRange对象中每一个key的值[自己的理解]
(setq name (vlax-get-property a 'AlternativeText))
6 . 将当前的shape选中
(vlax-invoke-method a 'Select)
7 . 进程对象下的弹窗对象
(setq CheckBoxobj (vlax-get-property Rtn 'Selection))
8 . 给选中的对象复制
(vlax-put-property
      CheckBoxobj
      'Text
      text
    )
示例:
(defun $xiu-gai-bao-cun$(wjm data / checkboxobj doc name rge rtn shapes text )
(setq Rtn (vlax-get-or-create-object "Word.Application"))
(setq doc (vlax-invoke-method
      (vlax-get-property Rtn 'Documents)
      'Open
      wjm
    ))
(setq Rge(vlax-invoke-method
      doc
      'Range
    ))  
(setq Shapes(vlax-get-property
      Rge
      'shapeRange
    ))
(vlax-for a Shapes
  (and
    (setq name (vlax-get-property a 'AlternativeText))
   
    (setq
      text (vl-some (function (lambda (a)
                (if (= name (cdr (assoc "name" a)))
                  (cdr (assoc "text" a))
                )
                  )
            )
            data
       )
    ) (progn
    (vlax-invoke-method a 'Select)
    (setq CheckBoxobj (vlax-get-property Rtn 'Selection))
    (vlax-put-property
      CheckBoxobj
      'Text
      text
    ))
  )
)
(vlax-invoke-method doc "SaveAs2" )
(progn
      (vlax-invoke-method
    doc
    'Close
      )
      (vl-catch-all-apply 'vlax-invoke-method (list Rtn 'Quit))
      (gc)
    )
)
(setq wjm "D:\\测试文件.doc");要写入的文件路径
(setq data (list (list (cons "name" "key1")
               (cons "text" "张三"))
             (list (cons "name" "key2")
               (cons "text" "李四"))
         ))
($xiu-gai-bao-cun$ wjm data)

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
tigcat + 1 + 5

查看全部评分

发表于 2024-7-9 07:54 | 显示全部楼层
本帖最后由 kx820506 于 2024-7-9 08:09 编辑

我是新手,但是这个话题很感兴趣
发表于 2024-7-9 11:48 | 显示全部楼层
有没有批量替换WORD里面文字的
 楼主| 发表于 2024-7-9 22:38 | 显示全部楼层
tryhi 发表于 2024-7-9 11:48
有没有批量替换WORD里面文字的

目前没有 , 批量的就循环搞了
 楼主| 发表于 2024-7-9 22:39 | 显示全部楼层
kx820506 发表于 2024-7-9 07:54
我是新手,但是这个话题很感兴趣

我是小白欢迎大神指正
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-13 04:27 , Processed in 0.219209 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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