将表数据输出到Excel (新建工作表)
<div>;;函数: (List采用Save采用Excel List);;功能: 将表数据输出到Excel (新建工作表)
;;参数: List 表,可以是一维或者二维表,或任意 list 表数据
;;返回: 0
;;示例: (List采用Save采用Excel '(1 2 3))
(defun List采用Save采用Excel( Lit / GetPy PutPy wbs wb sht xcells d c r)
(setq *appxls* (vlax-get-or-create-object "excel.application"))
(setq GetPy vlax-get-property PutPy vlax-put-property)
(setq wbs (GetPy *appxls* 'Workbooks))
;;判断工作薄(集合)是否为空,若空则新建工作簿,并返回工作薄指针
(setq wb (if (= 0 (GetPy wbs 'count))
(vlax-invoke-method wbs 'add)
(GetPy wbs 'item 1)) ;;如果不为空则返回第一个工作薄
)
;;新建工作表,用于导出数据。 (GetPy wb 'sheets) 是工作表集合对象
(setq sht (vlax-invoke-method (GetPy wb 'sheets) 'add))
;;得到工作表的 cells 对象,该对象与 range 对象的区别就是可以用行列定位
(setq xcells (GetPy sht 'cells) r 0 c 0)
(if (= (type Lit) 'LIST)
(repeat (length Lit)
(setq d (nth r Lit) r (1+ r))
(if (= (type d) 'LIST)
(repeat (length d) (PutPy xcells 'item r (1+ c)(vl-princ-to-string(nth c d))) (setq c (1+ c)) )
(PutPy xcells 'item 1 r (vl-princ-to-string d))
)
(setq c 0)
)(PutPy xcells 'item 1 1 (vl-princ-to-string Lit))
)
(vla-put-visible *appxls* 1);;显示工作表
;; 保存工作簿为文件
;(vla-saveas wb "C:/Test.xlsx")
(vlax-release-object xcells);;用完销毁
(vlax-release-object sht)
(vlax-release-object *appxls*)
)
页:
[1]