欢迎来到天天文库
浏览记录
ID:55665481
大小:69.50 KB
页数:2页
时间:2020-05-23
《AutoLISP例程:读取excel文件.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、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几个函数就可以了。下面的例子定义函数(GetCellValueA
2、sListexcelFilesheetNameRangeStr)读取如图所示的excel表格内容,返回list类型。 (defunc:test()(setqretV(GetCellValueAsList"E:\CAD\AutoLISP\LEARNING\book1.xlsx""BOM""A4:E6"))(princ)) (defunGetCellValueAsList(excelFilesheetNameRangeStr/xlwbswbshsshrgcsvvvnmsnmttt) (vl-load-com)(setqxl(vlax-get-or-create-obje
3、ct"Excel.Application"));创建excel程序对象(setqwbs(vlax-get-propertyxl"WorkBooks"));获取excel程序对象的工作簿集合对象(setqwb(vlax-invoke-methodwbs"open"excelFile));用工作簿集合对象打开指定的excel文件(setqshs(vlax-get-propertywb"Sheets"));获取刚才打开工作簿的工作表集合(setqsh(vlax-get-propertyshs"Item"sheetName));获取指定的工作表(setqrg(vlax-get-pr
4、opertysh"Range"RangeStr));用指定的字符串创建工作表范围对象(setqvvv(vlax-get-propertyrg'Value));获取范围对象的值(setqttt(vlax-safearray->list(vlax-variant-valuevvv)));转换为list(vlax-invoke-methodwb"Close");关闭工作簿(vlax-invoke-methodxl"Quit");推出excel对象(vlax-release-objectxl);释放excel对象(setqretttt))下图用VisualLISP的变量监视器查看到
5、底retV的值:从上图看出返回值中,每行数据一个list,行list组成一个结果list。List中的原子类型是variant,用函数(vlax-variant-valuevar)读取每个原子的值到lisp变量中就可以使用了。
此文档下载收益归作者所有