C#读Visio模型数据
第一步:安装Visio
安装相应版本的Visio(以64位为例),在安装过程中经常遇到下面的问题
解决方法:
按“win+R”快捷键,打开“运行”,输入“regedit”,打开注册表,找到【HKEY_CLASSES_ROOT】àInstalleràProducts
备份注册表,然后将上面Office 16 Click-to-run Extensiblity Component删除,然后再次安装即可成功。
第二步:添加引用
在项目中添加COM组件引用
我安装的是Visio 2013版本,因此添加15.0版本的类库引用
第三步:准备Viso文件
在Viso中画了如下简单图形,
Visio.Application app = null;Visio.Document doc = null;try{app = new Visio.Application();app.Visible = false;doc = app.Documents.Open(fname);var shapes = ((Visio.PageClass)((Visio.DocumentClass)doc).Pages[1]).Shapes;var dt = new DataTable();string[] cols = new string[] { "ID", "名称", "起始坐标", "结束坐标", "角度" };foreach (var item in cols){dt.Columns.Add(item);}foreach (Visio.Shape shape in shapes){var dr = dt.NewRow();dr[0] = shape.ID;dr[1] = shape.Text;dr[2] = $"({shape.Cells["BeginX"].Formula},{shape.Cells["BeginY"].Formula})";dr[3] = $"({shape.Cells["EndX"].Formula},{shape.Cells["EndY"].Formula})";try{var x1 = double.Parse(shape.Cells["BeginX"].Formula.Replace("mm", "").Trim());var x2 = double.Parse(shape.Cells["EndX"].Formula.Replace("mm", "").Trim());var y1 = double.Parse(shape.Cells["BeginY"].Formula.Replace("mm", "").Trim());var y2 = double.Parse(shape.Cells["EndY"].Formula.Replace("mm", "").Trim());dr[4] = Math.Atan2(y2 - y1, x2 - x1);}catch (Exception e){}//对于圆形没有起始结束坐标,有圆心坐标if(string.IsNullOrEmpty(shape.Cells["BeginX"].Formula)){dr[2] = $"({shape.Cells["PinX"].Formula},{shape.Cells["PinY"].Formula})";dr[3] = string.Empty;}dt.Rows.Add(dr);}return dt;}catch (Exception ex){throw;}finally{doc.Close();app.Quit();}
读取的数据如下:
以上就是一个简单读取Visio中模型数据的Demo,对于读取Viso字段值如果不知道字段名字可以打开Visio文件,进入开发者模式,然后右击选中的Shape展示ShapeSheet,可以看到相关的全部字段及对应的值。
C#读Visio模型数据相关推荐
- 一本书读懂大数据(每个人都看得懂的大数据入门书) - 电子书下载(高清版PDF格式+EPUB格式)...
一本书读懂大数据(每个人都看得懂的大数据入门书)-黄颖 在线阅读 百度网盘下载(635f) 书名:一本书读懂大数据(每个人都看得懂的大数据入门书) 作者:黄颖 格式 ...
- 读《大数据之路-阿里巴巴大数据实践》数据模型篇笔记
读<大数据之路-阿里巴巴大数据实践>数据模型篇 七 建模综述 OLTP 面向数据 随机读写 3NF OLAP 批量读写 不关注一致性更关心数据整合 ER模型–衍生出dataVault 维度 ...
- 读决战大数据-车品觉
读决战大数据-车品觉 一前言 (1)'大数据'的意义就在连结,数据公告层就是跨业务群的精华,让所有人能把其他人的数据冗余利用起来,这时'大数据'才算做了起来. (2)整合和配合,数据团队要学会取舍. ...
- 模型数据的保存和读取
1,基本内容 目的是将模型数据以文件的形式保存到本地. 使用神经网络模型进行大数据量和复杂模型训练时,训练时间可能会持续增加,此时为避免训练过程出现不可逆的影响,并验证训练效果,可以考虑分段进行,将训 ...
- 附加 集合数据_浩辰3D软件新手教程:三维建模设计中如何重用CAD模型数据?
在日常三维建模设计过程中,经常会遇到CAD模型数据的重复,那么如何重用CAD模型数据呢?下面小编就来给大家介绍一下在进行三维建模设计的过程中重用CAD模型数据的操作教程吧! 对CAD数据的重用,就如同 ...
- NLP诗词生成模型数据准备及实战
NLP诗词生成模型数据准备及实战 目录 NLP诗词生成模型数据准备及实战 方案流程 示例代码 自然语言处理+数据准备 Machine readable vector format 自然语言处理NLP的 ...
- NLP文本生成模型数据准备及实战
NLP文本生成模型数据准备及实战 自然语言处理+数据准备 Machine readable vector format 自然语言处理NLP的数据预处理有哪些共性,可以参考? 什么样的数据格式是深度学习 ...
- NLP语义标注模型数据准备及实战
NLP语义标注模型数据准备及实战 目录 NLP语义标注模型数据准备及实战 流程示例 代码示例
- 通过构建DCA(Decision Curve Analysis)模型、获取模型数据并使用python进行绘图
通过构建DCA(Decision Curve Analysis)模型.获取模型数据并使用python进行绘图 关于DCA(Decision Curve Analysis)的基本概念以及绘图方法参考 在 ...
最新文章
- 常见加密工具类Base64、DES、AES、RSA、MD5汇总
- 图卷积神经网络(GCN)理解与tensorflow2.0代码实现
- python集合和字典的区别_Python中的字典和集合
- [Network Architecture]DPN(Dual Path Network)算法详解(转)
- ViolinMemory上市遇低迷 唱衰闪存为哪般?
- 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
- Kubernetes详解(八)——Kubernetes资源配置清单
- 微型计算机原理王忠民PPT,微型计算机原理4 王忠民著.ppt
- Flutter 本地数据库sqflite实战操作
- 计算机无法安装64位操作系统,彻底根除“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题-网络教程与技术
-亦是美网络...
- matlab排序函数 下标,Matlab自带排序函数sort用法
- x265码率控制-VBV更新过程
- 营销公众号该如何运营大纲
- 学习使用github建立个人网站
- Unity关节的使用和举例,布娃娃系统
- Obsidian学习笔记(一):插件Excalidraw创建图表
- python神经网络反向传播_神经网络及反向传播算法
- 2010年计算机考研选择题解析,2009-2010计算机考研真题及答案(含选择题解析)WORD高清晰版.pdf...
- Java 设计模式 本文代码拉取链接 https://gitlab.com/zhangpengweiLJ/designpettern.git
- Tom小猫,让我看清你的五脏六腑1