Excel文件问题
我试图在相对较短的时间内成为Excel和AutoCAD之间接口的专家。因此,目前我正跌跌撞撞地处理其中许多问题。今天早上我发现了一个很好的LISP代码集,它可以处理Excel文件,叫做GetExcel。lsp。到目前为止,通过研究代码,我学到了很多东西,但有些问题我似乎无法解决。首先,可怕的(vl load com)问题。我一直很困惑,为什么开发人员在阅读李·麦克斯关于阿卡多克的有见地的帖子之前,不把这一点写在代码中。lsp。我有一个非常简单的电子表格,只有3个单元格中的值。当我调用代码的GetExcel部分时,我一直收到以下消息:
; 错误:自动化错误。Excel无法访问“模板”。文件可能是
只读或加密。
有问题的文件既没有被其他人打开,也没有设置为R/O。我可以发布我正在使用的代码,但它相当长,可以通过以下URL获得:
http://web2.iadfw.net/terrycad/LISP/GetExcel.lsp
我的目标是学习如何打开任何Excel文件,读取所需的数据,然后能够根据尺寸值快速创建图形。如果我能找到一种方法将Excel中的数据输入到AutoCAD文件中,我想我可以处理这一部分。
再次感谢大家的耐心。我意识到,在这个论坛上,对一个来自经验丰富的程序员的新手来说,这是一个残酷的解释。 嗨,比尔,
你给自己设置了一个相当大的挑战!在过去,我编写了很多与Excel交互的应用程序,有些是免费软件,有些不是,但在我看来,使用Excel最困难的部分之一是Excel API的大小,再加上MSDN文档的布局,有时就像在迷宫中导航。
以下是Swamp中的一些示例,可以帮助您实现目标:
http://www.theswamp.org/index.php?topic=31441.0
http://www.theswamp.org/index.php?topic=10101.0
http://www.theswamp.org/index.php?topic=35157.0 以下是MSDN文档:
Excel对象模型参考
Excel对象模型映射 非常感谢。最近几个月我失业了,急需一份工作,我真的很为难。一家当地公司请我帮忙,如果我能证明至少我能完成基本的工作,我可能会和他们一起完成一个长期项目。他们希望在Exel和AutoCAD之间建立接口。我的编程技能不是最好的,但每天都在提高,所以我要赶上这列火车。 祝你好运,比尔! 它开始对我起作用了。我已经获得了返回列表*ExcelData@的GetExcel代码,其中包含以下内容:
((“1”“2”“3”))这与我预期的类似,因为单元格A1、B1和C1分别包含值1、2和3。我之前有个大脑放屁,把那个部分搞错了。
所以我现在要解析它,并隔离列表中的三个项目,以便将它们分配给变量。在匆忙中,我试着:
(setq pt1(car*ExcelData@))
我假设它将返回“1”或仅1作为列表中的第一项。但相反,pt1最终是(“1”“2”“3”),只删除了一组偏执。
好的,我现在看到了曙光。如果我要求(car*ExcelData@),我会删除列表中的外部参数,因为这实际上是列表中的第一项。然后我要求(汽车pt1),我得到“1”。。。。万岁,但我怎样才能摆脱引用?或者,当我打算使用这些值作为维度,最终绘制一些简单的形状,如矩形和直线等时,是否有必要将其转换为数字。。 (mapcar 'atof (car *ExcelData@))
(setq pt1 (mapcar 'atof (car *ExcelData@)))
(setq pt2 (car pt1))
(setq pt3 (cadr pt1))
(setq pt4 (caddr pt1))
这让我今天达到了我想要的境界。这三个值现在分配给我可以在AutoCAD中使用并绘制一些图形的对象。现在我很危险。正如他们所说,我现在知道的足够多,真的把事情搞砸了。。。。!
今天,一个简单的电子表格。。。。明天,全世界! 比尔,你有AutoCad Map 3D吗?如果是这样,手头的任务就会容易得多。在您回复之前,我将保留该选项,而Map 3D在数据库文件(即转换的Excel文件)方面具有与ArcGIS软件相同的功能。一旦你将数据导入Map 3D,你就可以用它制作专题地图。 不,我没有使用3D Civil,我更喜欢建筑/结构用户。所以我必须使用普通的AutoCAD。
今天我有很多分心的事情,但我能够回来玩GetExcel。lsp程序。事实证明,其中还有另一个名为GetCell的模块,它也可以解析数据,您可以简单地要求它:
(setq pt6 (GetCell "C1"))
它将给出单元格“C1”中的值。不过,我学到了更多关于如何在Excel和AutoCAD之间进行交互的知识。每天我知道的比昨天多100%。
页:
[1]
2