18277132841 发表于 2022-2-22 17:27

用VBA将Excel表格与CAD交互

本帖最后由 18277132841 于 2022-7-11 19:36 编辑

工作之后才开始接触VBA,现在已经两年了,也没有怎么认真学过做了个CAD跟Excel表格转换的工具,但是水平有限,代码太乱了,
写完有时自己都不记得为什么这样写的,发出来希望有大神看看,
给点建议,也顺便看看能不能解决些遗留问题。代码基本都是抄抄改改的,
用了哪些大神的也不记得了,抱歉了,上传的是源码,还有使用的相关说明。

18277132841 发表于 2022-2-24 16:25

补一个CAD导出Excel的思路,目前单元格内的文字排序和上下标问题没处理好,由于上下标位置太复杂,CAD各种字体宽度又不是固定的,确实想不出什么好办法。
1、拾取由线(包括多段线和直线)和文字组成的表格对象,文字和线分开两个数组存放

2、遍历线数组,提取线的点XY坐标,坐标每两个点为一组,直线的话就是起终点,多段线的话就是1、2点一组、2、3点一组,……,n-1、n点一组。这一步主要是将多段线坐标转成直线。最终得到许多直线的XY坐标数组。

3、循环XY坐标数组,将坐标数组按竖线和横线分开,横线取Y坐标,竖线取X坐标,去掉重复数字,还可以根据文字高度和宽度,去掉一些可能在单元格中的短线,这样得到表格的行线的坐标数组和列线的坐标数组。

4、循环行线坐标数组
循环列线坐标数组
    如果单元格的左边线和顶边线存在,则说明单元格存在(否则单元格被合并)
      向下循环行线坐标数组直到找到下边线,确定本单元格合并的行数
      向右循环列线坐标数组直到找到右边线,确定本单元格合并的列数

其中,判断单元格上下左右边线是否存在如下:
计算单元格的边线中心点坐标
顶、底边线则循环第2步整理的行线行线坐标数组,通过点是否在直线上判断是否存在
左、右变线则循环第2步整理的竖线行线坐标数组

5、到此,就可以得到一个表格框架,表格的行数,行高,列数,列高,行线Y坐标,竖线X坐标,每个单元格合并的单元格情况等。

6、循环每个单元格,根据单元格的上下左右坐标为控制
循环文字的中心坐标,在单元格范围的,就拾取
将所有在单元格内的文字整理排序,处理上下标等

7、到此,就可以得到完整的表格内容。

8、循环单元格,没有被合并的则将文字输出至Excel,处理合并的单元格

18277132841 发表于 2022-3-16 22:26

cyfdean 发表于 2022-3-16 21:45
表格导出依然提示出错,表格导入可以(ALT换行,斜线导不进来),另外表格导入,要是加入绘图比例(表格放 ...

换行是前面想只用单行文字特意去掉的,忘记改了,斜线我用得太少了,而且很多插件也没有这个,感觉是没什么需求

18277132841 发表于 2022-3-15 17:55

cyfdean 发表于 2022-3-14 09:21
今天找了台WIN7CAD2017试了一下,也是一样的提示。用不了呢(都是正版完整安装)

更新了下文件,修复了些bug,也去掉了密码,自己可行看下错误,解决了记得来反馈一下

mikewolf2k 发表于 2022-2-23 09:06

1. 闪烁应该是ACAD刷新所致,跟EXCEL没关系。可以先zoom到一个很小的空的区域,这个区域内没有图形,刷新的影响降到最低。
2. 单元格内多个文字,可以按照大小坐标等排序,可以实现多个文字带上下标输出。

664571221 发表于 2022-2-23 16:36

你好兄弟我有录gif的软件加我扣扣3298554767

18277132841 发表于 2022-2-23 21:49

mikewolf2k 发表于 2022-2-23 09:06
1. 闪烁应该是ACAD刷新所致,跟EXCEL没关系。可以先zoom到一个很小的空的区域,这个区域内没有图形,刷新的 ...

谢谢,今天找到了解决办法

jacenhe 发表于 2022-2-25 11:17

本帖最后由 jacenhe 于 2022-4-23 13:57 编辑

极简录屏软件 Gif123 , 操作特别简单 https://gif123.aardio.com


















18277132841 发表于 2022-2-25 17:42

jacenhe 发表于 2022-2-25 11:17
录屏可以用这个, 操作特别简单 https://gif123.aardio.com

感谢,确实很好用

sunny_8848 发表于 2022-3-2 08:51

谢谢分享,下载学习下

sncokina 发表于 2022-3-2 21:59

谢谢分享,收藏备用

cyfdean 发表于 2022-3-12 14:49

WIN10 系统   CAD2020   2022测试出错用不了
页: [1] 2 3 4
查看完整版本: 用VBA将Excel表格与CAD交互