lisp小白请大神指点,lisp如何获得excel中的指定的表格
lisp小白请大神指点,lisp如何获得excel中的指定的表格?例如有一张表格叫“工作量表三”,请问怎么用lisp来获得这个表?(defun getsheet (sheetname / xlsapp sheets sheet)
(if (not (VL-CATCH-ALL-ERROR-P
(setq xlsapp (VL-CATCH-ALL-APPLY
'vlax-get-or-create-object
'("Excel.Application")
)
)
)
)
(if (not (VL-CATCH-ALL-ERROR-P
(setq sheets (VL-CATCH-ALL-APPLY
'vlax-get-property
(list xlsapp 'Sheets)
)
)
)
)
(if (not (VL-CATCH-ALL-ERROR-P
(setq sheet (VL-CATCH-ALL-APPLY
'vlax-get-property
(list sheets 'item sheetname)
)
)
)
)
(progn
(VL-CATCH-ALL-APPLY
'vlax-invoke-method
(list sheet 'Activate)
) ;_ 激活该表单
sheet ;_ 返回值
)
)
)
)
) 我也不会,但是我想通过论坛搜索,应该能找到答案 不错 G 版函数直接返回工作表对象,我再画蛇添足一下:
;;调用 G 版函数获取 工作表 sheet 对象,如果当前打开的 excel 中包含了 sheet1
(setq sheet (getsheet "sheet1"))
;;获取工作表 cell 对象
(setq cell (vlax-get-property sheet 'cells))
;;获取 C4单元格 对象
(setq RangC4 (vlax-get-property cell 'Range "C4"))
;;获取 C4单元格对象的 value 属性
(setq value (vlax-get-property RangC4 'value))
;;转换变体数据为字符串
(vlax-variant-value value) Gu_xl 发表于 2018-5-31 16:55
谢谢版主! yxp 发表于 2018-5-31 20:40
不错 G 版函数直接返回工作表对象,我再画蛇添足一下:
;;调用 G 版函数获取 工作表 sheet 对象,如果当 ...
谢谢版主! 如何调用命令
Gu_xl 发表于 2018-5-30 21:41
版主,请问下如何实现读取指定表格的行列数? 本帖最后由 yxp 于 2018-6-7 12:48 编辑
;;获取指定工作表的行数
(defun test()
(setq sheet (getsheet "sheet1"))
;;下面将依次获取工作表 sheet 对象的 UsedRange.Rows.Count 属性
(setq usr (vlax-get-property sheet 'UsedRange))
(setq row (vlax-get-property usr 'Rows))
(setq n (vlax-get-property row 'Count))
)
;;获取最后列数用UsedRange.columns.count
yxp 发表于 2018-6-7 12:41
;;获取指定工作表的行数
(defun test()
(setq sheet (getsheet "sheet1"))
:victory:果然是大神,学习了。
页:
[1]
2