AutoLISP例程:读取excel文件
好多讲述用vlisp读取excel文件的文章中都提到
vlax-import-type-library这个函数,其实没有必要。该函数仅仅是给每个excel对象模型中的属性、方法、对象等引入一个别名,占内存很大,没有意义。用vlisp操作excel文件只要了解excel对象模型和
vlax-get-or-create-object 、vlax-get-property、vlax-invoke-method、
vlax-put-property、vlax-safearray-type几个函数就可以了。
下面的例子定义函数(GetCellValueAsList excelFile sheetName RangeStr) 读取如图所示的excel表格内容,返回list类型。
(defun c:test()
(setq retV (GetCellValueAsList
"E:\\CAD\\AutoLISP\\LEARNING\\book1.xlsx" "BOM" "A4:E6"))
(princ)
)
(defun GetCellValueAsList( excelFile sheetName RangeStr / xl wbs wb shs sh rg cs vvv nms nm ttt)
(vl-load-com)
(setq xl (vlax-get-or-create-object "Excel.Application")) ;创建excel程序对象
(setq wbs (vlax-get-property xl "WorkBooks")) ;获取excel程序对象的工作簿集合对象
(setq wb (vlax-invoke-method wbs "open" excelFile)) ;用工作簿集合对象打开指定的excel文件