AutoCAD与EXCEL的数据交换技术及应用.pdf
第5期 3 收稿日期 20040916 作者简介胡德承1970 , 男,高级工程师,主要从事测绘及GIS方面的研究。 AutoCAD与EXCEL的数据交换技术及应用 胡德承 13 王占强 2 1. 汕头市测绘研究院,广东 汕头 515041; 2.江门市城市地理信息中心,广东 江门 529000 摘 要AutoCAD数据交换有多种模式,可以是AutoCAD本身的DXF格式,也可以是当前普遍采用的纯文本格式。 EXCEL作为电子表格处理软件,可以自动处理大量数据和报表,具有易于统计分析及生成报表和图表等优点,利用它 进行AutoCAD图形数据交换具有前面2种方法所不具备的优势。本文探讨了AutoCAD与EXCEL的数据交换技术及 应用。 关键词 EXCEL工作簿 ActiveX对象模型 图形数据 属性数据 数据交换 中图分类号 P209 文献标识码B 1 引 言 AutoCAD是测绘、 设计部门普遍采用的辅助制图 软件,它的数据交换格式是DXF明码格式,用文本处 理软件可以直接打开阅读,但每个对象的数据包含很 多行,文件前面环境描述的内容也占据了大量的长度, 每个数据项的前面1行是它的DXF组码,要读懂数据 含义十分困难。因此,很多用户采用明码的文本文件 . TXT进行数据交换,但它也存在文本格式差别大、 数据存储量大、 安全性差等缺点。EXCEL是微软公司 Office办公系统的1个用于创建和维护电子表格的套 件,很多单位把它作为统计分析、 生成报表和图表的工 具。利用它进行AutoCAD数据交换具有前面2种方 法所不具备的优势。 2 数据交换的内容及组织模式 对于AutoCAD图形数据,可以归结为4种对象类 型点、 线、 面、 注记。点 可以是PO I NT对象或是 BLOCK对象,线是PL I NE对象,面则是闭合的PL I NE 对象,注记是TEXT对象。根据4种对象类型的不同 特征,设计数据交换的内容与组织模式如下面的3个 表格所示。 点对象数据交换的内容与组织模式 表1 列号数据内容说明 1对象类型标志点对象类型标志为 PO I NT 2要素编码 3图层 4图块名若是图块对象,为图块名,否则为空 5比例因子若是图块对象,为图块的比例因子 6旋转角度若是图块,为图块的旋转角度 7位置信息由坐标x、y、z组成, x、y、z之间用“,” 分隔 线、 面对象数据交换的内容与组织模式 表2 列号数据内容说明 1对象类型标志 线对象类型标志为 L I NE 面对象类 型标志为 POLYGON 2要素编码 3图层 4线型 5线宽PL I NE线的宽度 6线型比例对象图形实体的线型比例 7位置信息 由各端点坐标x、y、z组成, x、y、z之间 用“,” 分隔,点与点之间用“” 分隔 73胡德承等 1AutoCAD与EXCEL的数据交换技术及应用 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 2005年 注记对象数据交换的内容与组织模式 表3 列号数据内容说明 1对象类型标志注记对象类型标志为 TEXT 2要素编码 3图层 4注记内容 5字体名、 对齐方式每项之间用“,” 分隔 6字高、 字宽比例、 旋转角度每项之间用“,” 分隔 7位置信息 由注记位置x、y、z组成, x、y、z之 间用“,” 分隔 3 数据交换的实现 笔者用ACAD VBA实现了AutoCAD与EXCEL之 间的数据交换。现介绍如下 311 EXCEL ActiveX对象模型 AutoCAD与EXCEL之间的数据交换,需要加载 EXCEL ActiveX对象模型。在ACAD VBA编辑器中选 择“ 工具 ” 菜单的“ 引用 ”,选择加载Microsoft ExcelOb2 jectLibrary。 与ACAD的ActiveX对象模型一样, EXCEL的Ac2 tiveX对象模型的顶层对象也是Application对象。下 面代码声明并新建1个EXCEL. Application对象。 Dim ExcelApp AsNew Excel . Application 新建EXCEL对象,也可以调用VB库函数Cre2 ateObject Dim ExcelApp As Excel . Application Set ExcelApp CreateObject“Microsoft Excel” 对EXCEL进行读写操作后,要关闭EXCEL工作 簿、 退出EXCEL应用程序对象并释放EXCEL应用程 序对象变量 ExcelApp. Workbooks . Close ExcelApp. Quit Set ExcelApp Nothing EXCEL. Application对象提供的Workbooks工作 簿集合对象包含有全部已经启动的EXCEL工作簿对 象,我们可以使用Application对象的ActiveWorkbook 来获取当前活动的工作簿对象,也可以使用Workbooks Index方法来得到指定的工作簿对象。获取要操作 的工作簿后,需要获取工作簿中的指定工作表Work2 sheet才能访问到其中指定单元格的内容。 312 读取EXCEL工作表中的数据 读取EXCEL工作表中数据,首先要打开工作簿。 下面的代码调用EXCEL应用程序对象的Workbooks 集合的Open方法以只读方式打开文件名为“book1. xls” 的EXCEL文档。 ExcelApp. Workbooks . Open“d \ \ book1. xls”, , True 下面的代码获取工作簿中的名称为“sheet1” 的工 作表 SetWkSheet Excel App. ActiveWorkbook. Work2 sheets“sheet1” EXCEL的单元格位置由行和列唯一指定。通常 EXCEL文档第1行是表头说明,我们从第2行开始读 数据行号为 1 。根据上述的数据组织模式,第1列 是对象类型标志,程序首先读取它的值,确定后面列的 数据类型,读取1个对象表格中1行数据后,进行相 应的绘图操作。下面的代码将第i行第2 EXCEL的 B 列的内容取出赋给变量mCode。 mCode WkSheet . . Range“B” i 取出EXCEL表格中的数据后,可以在ACAD模型 空间中绘制出相应的图形实体。下面的代码在模型空 间中绘制线或面对象 Set LWPl This Drawing . ModelSpace. AddLight2 WeightPolylinePts 若是面对象还要用下面的语句使它闭合 LWPl . Closed True 程序中,循环判断第1列的对象类型标志,直到读 出并绘制了所有对象。 313 写数据到EXCEL工作表中 要写数据到EXCEL工作表,首先须添加EXCEL 工作簿 Dim Excel Wkbk As Excel . Workbook Set Excel Wkbk ExcelApp. Workbooks . Add EXCEL会自动建立名称为“sheet1” 工作表,可以 直接写数据到该工作表中。 SetWkSheet Excel Wkbk. Worksheets“sheet1” 接着,程序遍历AutoCAD模型空间中的图形对 象,并提取对象中的数据之后,将数据填充到EXCEL 单元格中。下面的代码将对象的位置信息数据填充到 工作表第i行第7列的单元格中 WkSheet . Range“G” i Pos Data 图形对象的数据填充到工作表中后,要用下面的 语句保存成EXCEL文档文件 ExcelApp. ActiveWorkbook.SaveAs“d \ book1. xls” 83城 市 勘 测 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 第5期 4 应 用 411 不同平台之间进行数据交换 利用该技术可以将EXCEL作为AutoCAD与其他 平台之间数据交换的媒介。AutoCAD数据交换到EX2 CEL后,另1个平台可以从EXCEL中读取数据,从而 解决AutoCAD与其他平台之间难于直接进行数据交 换的问题。 412 利用EXCEL进行统计及报表、 图表输出 数据交换内容中的要素编码是作为属性数据存贮 在图形实体的扩展数据中。在制作AutoCAD数据的 过程中,我们可以存入更多的属性数据。数据交换到 EXCEL后,可以利用EXCEL的功能对提取的属性数 据进行统计处理并制作专业、 精美的报表或图表。 如土地分类统计将地块的分类信息、 地块面积等 信息存入,数据交换到EXCEL后,可以依据地块的分 类信息统计每类地块的总面积形成报表,还可以制作 若干个面积范围地块数的统计直方图,使用户可以直 观地了解地块面积大小的分布状况。 又如规划电子报批中用地指标的核算在规划设 计过程中适当增加AutoCAD图形数据的扩展属性 如用地类型、 建筑结构、 楼层、 面积等信息 , 交换到 EXCEL后,可以利用EXCEL的功能对提取的属性进 行统计分析,计算出各项规划用地指标,并对照EX2 CEL中预先设定的规划控制标准实现规划指标的自动 审核。 413 地理信息数据整理和数据建库 数据整理是地理信息系统数据建库的前期工作, 它通常要求抽取原数据的骨架信息和属性信息。但对 于AutoCAD的中间交换DXF数据处理起来的工作量 十分巨大。使用本文的数据交换技术,对交换到EX2 CEL的数据利用EXCEL的功能进行整理、 规范,可以 方便、 快捷地达到数据整理和建库的要求。 5 结 语 该数据交换技术对于AutoCAD图形数据和属性 数据均适用,并且涵盖了AutoCAD与EXCEL之间的 双向数据交换,为AutoCAD与其他图形或GIS软件之 间的数据交换搭设了桥梁。应用该技术将数据交换到 EXCEL后,可以充分利用EXCEL的功能进行数据整 理、 统计分析、 报表或图表生成,从而扩展了AutoCAD 图文一体化管理的功能,同时为数据建库提供了有效 的途径。 需要指出的是一些软件,特别是GIS软件,不支 持包含圆弧或曲线的线、 面,因此对于AutoCAD中含 有圆弧或曲线弧段的线、 面对象,需要编制用多个直线 弧段模拟曲线弧段的程序,并事先运行它,才可以进行 数据交换。 参考文献 [1] 宋伟东,符韶华. DLG到GIS的数据转换方法研究.测绘 通报, 20042. [2] 胡德承,田鹏波. DGN到DWG地形图数据转换的实现. 城市勘测, 2001 1. [3] 史军,邱昕,催林丽等. CAD图形数据转换为GIS空间数 据的技术研究及应用.东北林业大学学报, 2001. 11 上接第36页 4 结 语 本文以秦皇岛市1∶500地形图数据建库为例,详 细讲述了以MapGIS软件为平台的基础地形图数据建 库过程。目前,主要的GIS厂商也都相应地推出各自 的产品,使得用户可以通过空间数据库的引擎,运用大 型关系型DBMS,如ORACLE、SQL SERCER等进行海 量空间数据的统一管理,以面向应用的GIS为前台,以 大型关系数据库为后台的数据库管理,成为GIS发展 的主流趋势。加强城市地形图数据库建设,为城市发 展提供权威、 规范的基础地理信息服务,对于推进城市 地理信息的产业化进程,构建“ 数字城市 ”,将具有十 分重要的意义。 参考文献 [1] 北京中地时代软件工程有限公司. MapGIS地理信息系统 实用教程.武汉中国地质大学武汉信息工程系. 2002. [2] GB /T17798 - 1999.地球空间数据交换格式. [3] GB /T17160 - 1997. 1∶500、1∶1 000、1∶2 000地形图数 字化规范. [4] GB /T13923 - 92.国土基础信息数据分类与代码. [5] GB /T14912 - 94.大比例尺地形图机助制图规范. 93胡德承等 1AutoCAD与EXCEL的数据交换技术及应用 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.