欢迎来到天天文库
浏览记录
ID:35199674
大小:114.50 KB
页数:6页
时间:2019-03-21
《exceltocad的表格转换》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、EXCEL表格到AUTOCAD表格的转换周文杰冯若谦王长伟(大连市交通规划勘查设计院,辽宁大连116033)摘 要:MicrosoftExcel有制表方便、统计计算快捷准确的优点,Autocad在绘图方面有方便实用的特性,在实际工作中,我们探索总结出一种充分发挥两个程序优势,使其更好的为我们工作服务的方法。主要是将MicrosoftExcel的表格按照原样转换到Autocad图形中,在Autocad中可以方便地对表格的内容进行编辑修改。具体作法是:利用Autocad提供的VBA接口程序,将表格线条、表格内容绘制在Au
2、tocad图形中,通过读取MicrosoftExcel各单元格四个边框属性和caption属性来确定Autocad中每个格的边框粗细和文字内容。在Autocad中利用VBA多意线对象命令addlightWeightPolyline绘制表格线框;利用多行文本对象命令xAcadMtet和单行文本对象命令AcadText实现文字的标注。由于多行文本对象可以对文本的单个字符进行控制,因此对于有特殊格式内容的文本,必须采用AcadMtext命令,但是多行文本有对象占用空间大而且运行速度慢的缺点,因此对于所有字符属性相同的文本应
3、采用AcadText命令。关键词:VBA语言 MicrosoftExcel工作表Autocad图表转换61引言 Autocad(以下简称CAD)和MicrosoftExcel(以下简称Excel)是目前工程设计领域使用最广泛的应用软件。CAD是由AutoDesk公司出版的工程绘图软件。在工程设计中,对于CAD绘制的工程图都有反映工程数量及材料规格、用量等内容的表格,工程设计中大量的工程量统计、计算及绘制工作非常烦琐,而且极易出现差错。Excel软件是微软公司出版套装Office办公软件的重要组成部份,Excel具有制
4、表、统计、计算方便快捷等优点,尤其在大量数据的分类汇总、数理统计及函数、公式套用上实现了数据处理的批量化,提高了工程量计算的速度和准确度。 为综合利用两个软件的优点,工程设计中通常在CAD中绘制图形对象,在Excel中对工程量进行统计计算,并把结果以表格形式插入到CAD的图形中,绘制出图表并茂的CAD图形文件。 将Excel表插入到CAD图中是将Excel表格拷贝至剪贴板中,然后打开CAD文件,再将剪贴板中的内容粘贴至CAD中。这种方法十分简单,但缺点是输入到CAD中的表格是图像格式,无法用C
5、AD命令进行编辑。保存文件时必须将Excel文件和CAD文件保存在一起。如同时插入多个表格,需要占据较大的内存空间,运行速度很慢,给工程图的修改和存档带来了很多的不便之处。利用CAD14.0以后版本所提供的VBA接口程序,编制程序将Excel表格按原样转换到CAD中,就能够充分利用两个软件的优点,克服了它们的缺点,该方法为ExceltoCAD表格转换,其优点是表格的所有内容都是由CAD的对象组成,可以方便地进行编辑和修改,为使用图形文件带来了很大的方便,而且表格在CAD文件中占用的空间小,不需要依赖其它文件。2Exc
6、eltoCAD表格转换的算法6 ExceltoCAD表格转换程序的基本原理是利用VBA把Excel表格中的文字和线条信息全部读取出来,在CAD文件里按照一一对应的方式写出来,确保转换后的表格与原表格一致。 在Excel中,表对应的对象是工作表(Worksheet),表格单元对应的对象是单元格(cell),它可以仅包括一个单元格,也可以是由多个单元格合并而成的单元格。 在CAD中,没有与表对应的对象,但表可以理解为由若干条线和文字对象组合而成。根据上述分析,可以采用如下的转换方法:
7、 读取Excel文件中的最小对象单元格(cell)的主要信息—线条和文字,然后在CAD指定的图层、位置画线条,书写文字。通过循环,遍历所有单元格区域,边读边写,最终完成表格的转换。转换过程中,保持线条、文字及其相关属性不发生改变。3ExceltoCAD表格转换的实现方法为了获得Excel表格的属性,应该从每个单元格入手,通过读取每个单元格四条边的属性,来确定表格的形式,通过读取每个单元格的文本属性,来确定表格的内容。3.1 表格线条的转换 在获取表格信息时,为了避免重复读取边的信息,采用如下方
8、法。假设表格由a行b列组成,x,y为循环变量。当x=1时读取上边;当y=1时读取左边,其余情况读取右边、下边。 对合并单元格,由于表格行号、列号有间断,不连续,无法进行循环读取信息。通过函数Address和单元格的Mergearea属性可以获得合并单元格的准确信息。具体方法为:读取cells(x,y)单元格时,用address判断包
此文档下载收益归作者所有