admin管理员组

文章数量:1565292

2024年6月20日发(作者:)

Visual LISP与Excel电子表格

Microsoft Excel 在当今世界上的电子表格应用软件产品中占有绝对的统治地位。我

们经常可以看到财会部门或人事部门利用它来处理日常的一些数据。虽然说 Access 在数

据处理方面会比Excel好些,但它在一些简单的日常事务中象执行一些快速输入或排序时

却不那么方便简单。它是一个常用的事务处理工具。

这10年来,有许多AutoCAD程序是用于将提取数据并将其输出为报告。不论什么原

因,它是很必要的。近10年来所见到的除了极少部分外(如Terry Dotson的

/), 输出的机制均为输出为 ASCII文本文件,或有些是带格式文

件。这是因为10年来,我们没有 Visual LISP 或 VBA 使程序与其它应用软件相连通并

在相互之间传递信息。现在可以了。

如果你还一直在使用逗号或TAB分界符的文本来区分你的数据,你应该好好地看看这

篇文章了。

Visual LISP (VBA也可以) 提供了必要的函数来接触和与任何提供了类型库(内部暴露

API[应用程序接口程序]的应用程序相联系。通常它是VB或VBA。这一类应用程序包括

Microsoft Office (Access, Excel, Word, 还有象Outlook 和 PowerPoint), 以及象

MathCAD, Visio、Actrix等产品。

在你的代码中的第一件事就是必需在Visual LISP中加载ActiveX/COM。它是通过

(vl-load-com) 函数来完成的。第一件事尝试与 Excel 连接上就是搜索Excel的类型库文

件。这里使用了Excel 2000 (9.0) 作为例子。示例1演示了怎样通过Excel不同版本来取

得与其类型库相关联。注意 Excel 2002 用的是可执行文件来身来代替在以往版本中所使

用的分离的TLB或OLB文件。

Figure 1: 加载Excel 97 类型库

(vl-load-com)

(defun DSX-TypeLib-Excel ( / sysdrv tlb)

(setq sysdrv (getenv "systemdrive"))

(cond

( (setq tlb (findfile (strcat sysdrv

")))

tlb

)

( (setq tlb (findfile (strcat sysdrv

")))

tlb

)

"Program FilesMicrosoft

"Program FilesMicrosoft

本文标签: 数据输出类型程序占有