明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8068|回复: 38

用VBA将Excel表格与CAD交互

  [复制链接]
发表于 2022-2-22 17:27:08 | 显示全部楼层 |阅读模式
本帖最后由 18277132841 于 2022-7-11 19:36 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 4明经币 +4 金钱 +55 收起 理由
xxxooo + 1 + 5 赞一个!
zhangcan0515 + 1
fangmin723 + 1 + 50 很给力!
AndyWang + 1 很给力!

查看全部评分

 楼主| 发表于 2022-2-24 16:25:47 | 显示全部楼层
补一个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,处理合并的单元格

评分

参与人数 4明经币 +3 金钱 +20 收起 理由
ludaweb + 1 赞一个!
fangmin723 + 1 很给力!
chixun99 + 10 有思路
mikewolf2k + 1 + 10 赞一个!

查看全部评分

发表于 2024-7-16 21:05:26 | 显示全部楼层
18277132841 发表于 2022-2-24 16:25
补一个CAD导出Excel的思路,目前单元格内的文字排序和上下标问题没处理好,由于上下标位置太复杂,CAD各种 ...

你的思路和这位大神一样的吧,我这几天正在想怎么解决合并单元格,谢谢您提供的想法,十分感谢http://bbs.mjtd.com/forum.php?mo ... amp;highlight=excel
 楼主| 发表于 2022-3-16 22:26:38 | 显示全部楼层
cyfdean 发表于 2022-3-16 21:45
表格导出依然提示出错,表格导入可以(ALT换行,斜线导不进来),另外表格导入,要是加入绘图比例(表格放 ...

换行是前面想只用单行文字特意去掉的,忘记改了,斜线我用得太少了,而且很多插件也没有这个,感觉是没什么需求
发表于 2022-2-23 09:06:44 | 显示全部楼层
1. 闪烁应该是ACAD刷新所致,跟EXCEL没关系。可以先zoom到一个很小的空的区域,这个区域内没有图形,刷新的影响降到最低。
2. 单元格内多个文字,可以按照大小坐标等排序,可以实现多个文字带上下标输出。
发表于 2022-2-23 16:36:03 | 显示全部楼层
你好兄弟我有录gif的软件加我扣扣3298554767
 楼主| 发表于 2022-2-23 21:49:46 | 显示全部楼层
mikewolf2k 发表于 2022-2-23 09:06
1. 闪烁应该是ACAD刷新所致,跟EXCEL没关系。可以先zoom到一个很小的空的区域,这个区域内没有图形,刷新的 ...

谢谢,今天找到了解决办法
发表于 2022-2-25 11:17:12 | 显示全部楼层
本帖最后由 jacenhe 于 2022-4-23 13:57 编辑

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


















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2022-2-25 17:42:26 | 显示全部楼层
jacenhe 发表于 2022-2-25 11:17
录屏可以用这个, 操作特别简单 https://gif123.aardio.com

感谢,确实很好用
发表于 2022-3-2 08:51:16 | 显示全部楼层
谢谢分享,下载学习下
发表于 2022-3-2 21:59:59 | 显示全部楼层
谢谢分享,收藏备用
发表于 2022-3-12 14:49:09 | 显示全部楼层
WIN10 系统   CAD2020   2022测试出错用不了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 02:54 , Processed in 0.163333 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表