天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 60|回复: 0

Lisp向excel单元格插入批注

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
Lisp向excel单元格插入批注



(defun $excel-dan-yuan-ge-pi-zhu$ (xlapp sh-n address-str-h lst / $set-font-size$ xlsheet zt)
                    ;Excel单元格插入批注
                    ;xlapp excel对象
                    ;sh-n 表的名字
                    ;address-str-h  三个值:单元格地址、字串、文字大小
                    ;lst 预留参数
                    ;($excel-dan-yuan-ge-pi-zhu$  xlapp  "Sheet2"(list(list "A1" "中线CAD:\n这个列不能删除,删除后将会带来灾乱性后果")(list "B2" "秦始皇:\n您好呀,我是批注"))nil)
  (defun $set-font-size$ (range h)
    (vl-catch-all-apply
      'vlax-put-property
      (list
    (vl-catch-all-apply
      'vlax-get-property
      (list
        (vl-catch-all-apply
          'vlax-invoke-method
          (list
        (vl-catch-all-apply
          'vlax-get-property
          (list
            (vl-catch-all-apply
              'vlax-get-property
              (list
            (vl-catch-all-apply
              'vlax-get-property
              (list range 'Comment)
            )
            'Shape
              )
            )
            'TextFrame
          )
        )
        'Characters
          )
        )
        'font
      )
    )
    'size
    h                ;文字高度
      )
    )
  )
  (or xlapp (setq xlapp ($xlapp-New$ NIL nil nil)))
  (setq    xlsheet
     (vl-catch-all-apply
       'vlax-get-property
       (list (vl-catch-all-apply
           'vlax-get-property
           (list (vl-catch-all-apply
               'vlax-get-property
               (list xlapp 'activeworkbook)
             )
             'Sheets
           )
         )
         'Item
         sh-n
       )
     )
  )                    ;工作表对象
  (setq    zt (mapcar (function (lambda (a / address str h range zt)
                   (setq address (car a))
                   (setq str (cadr a))
                   (setq h (caddr a))
                   (or h (setq h 8))
                   (if str
                 (progn
                   (SETQ
                     range (vl-catch-all-apply
                         'msxlp-get-range
                         (list xlsheet address)
                       )
                   )    ;单元格对象
                   (vl-catch-all-apply
                     'vlax-invoke-method
                     (list range 'ClearComments)
                   )    ;删除历史批注  
                   (setq zt (vl-catch-all-apply
                          'vlax-invoke-method
                          (list
                        range
                        'AddComment.Text
                        str
                          )
                        )
                   )    ;添加批注
                   ($set-font-size$ range h)
                 )
                   )
                   zt
                 )
           )
           address-str-h
       )
  )
  zt
)

 

 

 

 

Lisp向excel单元格插入批注
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:17 , Processed in 0.171498 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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