批量提取图纸文字后需要将文字导出到excel中,现有一段代码是每次运行新建一个sheet,现在想不新建,而是在默认打开的那个sheet的最后追加,这种可以实现吗
现有代码如下
- <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*)
- )</div>
|