乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 209|回复: 12

. net Excel w/CAD建议

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2018-6-20 00:38:13 | 显示全部楼层 |阅读模式
我需要编写一些代码,使用excel表单上的数据在autocad中绘制一些东西。本质上,它需要是excel中的一个按钮,可以在CAD中启动命令并开始绘制,或者是CAD中的一条命令,可以获取excel数据。
我在寻找那些做过这件事的人的建议……不是代码,而是您愿意分享的任何经验,这些经验可以帮助我在开始编写代码时避免陷阱或问题<非常感谢!

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

14

主题

275

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
331
发表于 2018-6-20 01:09:42 | 显示全部楼层
最近我发现了EPPlus,它只是一个能够读写.xlsx文件的DLL。有更多的解决方案,但这个解决方案非常强大
可以使用它从AutoCAD开始抓取。如果要从Excel内部执行此操作,需要编写宏。我对此没有经验。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-6-20 02:16:40 | 显示全部楼层
如果您在excel中的数据是“平面”格式,那么将excel数据导出为csv,然后将csv读取到AutoCAD中进行绘图将非常容易。即使您将此作为开发过程的“第一阶段”作为概念证明,然后确定是从Excel还是AutoCAD自动化它,无论哪种方式,您都需要同时使用两个API,但至少您将完成绘图引擎和可行的解决方案
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2018-6-20 02:25:44 | 显示全部楼层
谢谢你的两个想法,米克德/哈伊兹。非常感谢!
回复

使用道具 举报

14

主题

275

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
331
发表于 2018-6-20 03:13:51 | 显示全部楼层

CSV当然很容易编写,但在某些国家/地区,您必须将Excel中的逗号作为十进制分隔符或点作为千个分隔符来处理。当使用逗号时,列分隔符必须是分号。所以读取CSV更困难。我还遇到了重音字符的问题,所以您必须以正确的UTF方式编写文件。
您也可以四处寻找CSV类,它会遇到这些瓶颈。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-6-20 05:02:40 | 显示全部楼层
公平点Huiz!
但是有一个解决方法。将csv分隔符设置为其他符号,如“;”或者“|”。这里有一个例子,在快速搜索之后。
https://www . itsupportguides . com/knowledge-base/office-2013/excel-2013 2016-how-to-change-CSV-delimiter-character/
写一个'?'也是相当琐碎的sv解析器使用类似my_string的东西。拆分(';')例如,只要数据是格式良好的。从Excel出来应该没问题。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2018-6-20 09:10:51 | 显示全部楼层
您的excel表中有多少数据?如果您可以将其限制为150行和5张,您可以使用GENbox电子表格。免费版本功能齐全,具有前面提到的恢复功能。从他们的网页:
GemBox.Spreadsheet是一个. NET组件,使您能够使用一个简单的API从您的. NET应用程序中读取、写入、编辑、转换和打印电子表格文件。
有了GemBox.Spreadsheet,您就可以获得一个易于使用的快速可靠的组件。它只需要. NET框架,因此您可以轻松部署您的应用程序,而无需考虑其他许可证。而且它比Microsoft Excel自动化快250倍!
https://www.gemboxsoftware.com/spreadsheet
回复

使用道具 举报

16

主题

506

帖子

6

银币

中流砥柱

Rank: 25

铜币
570
发表于 2018-6-20 10:07:16 | 显示全部楼层
虽然其他答复都提供了非常有用的意见,但我想补充一点
在AutoCAD中使用外部数据生成实体(或在AutoCAD中执行任何操作)是一个非常常见的过程。在编写此类任务时,将AutoCAD内部的过程与数据存储格式解耦非常重要。也就是说,在AutoCAD中,您可以定义数据类/模型,用于保存运行时数据,以便AutoCAD执行其工作。然后定义am接口,用于访问来自任何数据存储的数据。然后,您可以针对不同的数据存储有不同的数据访问实现。对于AutoCAD,它完全不考虑外部数据存储,即*中的数据。xls或in*。是否安装了csv或Excel应用程序,或是否将数据存储在某种数据库中。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-6-20 10:09:42 | 显示全部楼层
我的第一个偏好是始终运行AutoCAD并使用外部数据文件,而不是通过外部程序驱动AutoCAD。
我也倾向于远离Excel和其他Office应用程序进行数据存储,因为升级/补丁可以很容易地“切断电线”。 你自己的计算机不是问题,而是投入了几十个人和IT推送更新,这是一件苦差事。 使用Excel的另一个缺点是用户可以删除/隐藏/合并单元格行和列;当你的程序期望某些东西可用,或者那里有一些东西被隐藏和遗忘时,它会给这个过程带来麻烦。
因此,我开始使用 XML 进行小规模数据存储。 我可以在CAD中构建一个用户界面,迫使用户做正确的事情,并且可以使用各种文本编辑器手动调整内容。 它不仅限于平面 X-by-Y 维度,还可以通过应用样式表转换为 HTML、CSV 或其他文本文件(我有一个技术测试人员,可以在某个地方生成 LIN 文件)。
回复

使用道具 举报

16

主题

506

帖子

6

银币

中流砥柱

Rank: 25

铜币
570
发表于 2018-6-20 18:34:44 | 显示全部楼层
n.yuan和dgorsman都提出了很好的观点。尽可能保持数据和AutoCAD解耦。在我的书中,接口在任何时候都胜过类,并且是将底层结构可能非常不同的不同组件“插在一起”的极好方式。
尽可能保持简单,虽然从一个应用程序中自动化整个过程对用户来说似乎更容易,但开发解决方案可能比它的价值更痛苦/成本更高。在每个应用程序中,你实际上是在说几秒钟来导出和导入数据,而将它们耦合在一起的开发和维护将是一个持续的成本和潜在的错误来源,如上所述。
在我开始一个新的应用程序之前,我喜欢参考“Unix基本原理”页面,以控制这个过程,至少前六点适用于此:
https://home page . cs . uri . edu/~ then ry/resources/Unix _ art/ch01s 06 . html
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 10:54 , Processed in 0.155686 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表