第一步:安装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模型数据相关推荐

  1. 一本书读懂大数据(每个人都看得懂的大数据入门书) - 电子书下载(高清版PDF格式+EPUB格式)...

    一本书读懂大数据(每个人都看得懂的大数据入门书)-黄颖 在线阅读                   百度网盘下载(635f) 书名:一本书读懂大数据(每个人都看得懂的大数据入门书) 作者:黄颖 格式 ...

  2. 读《大数据之路-阿里巴巴大数据实践》数据模型篇笔记

    读<大数据之路-阿里巴巴大数据实践>数据模型篇 七 建模综述 OLTP 面向数据 随机读写 3NF OLAP 批量读写 不关注一致性更关心数据整合 ER模型–衍生出dataVault 维度 ...

  3. 读决战大数据-车品觉

    读决战大数据-车品觉 一前言 (1)'大数据'的意义就在连结,数据公告层就是跨业务群的精华,让所有人能把其他人的数据冗余利用起来,这时'大数据'才算做了起来. (2)整合和配合,数据团队要学会取舍. ...

  4. 模型数据的保存和读取

    1,基本内容 目的是将模型数据以文件的形式保存到本地. 使用神经网络模型进行大数据量和复杂模型训练时,训练时间可能会持续增加,此时为避免训练过程出现不可逆的影响,并验证训练效果,可以考虑分段进行,将训 ...

  5. 附加 集合数据_浩辰3D软件新手教程:三维建模设计中如何重用CAD模型数据?

    在日常三维建模设计过程中,经常会遇到CAD模型数据的重复,那么如何重用CAD模型数据呢?下面小编就来给大家介绍一下在进行三维建模设计的过程中重用CAD模型数据的操作教程吧! 对CAD数据的重用,就如同 ...

  6. NLP诗词生成模型数据准备及实战

    NLP诗词生成模型数据准备及实战 目录 NLP诗词生成模型数据准备及实战 方案流程 示例代码 自然语言处理+数据准备 Machine readable vector format 自然语言处理NLP的 ...

  7. NLP文本生成模型数据准备及实战

    NLP文本生成模型数据准备及实战 自然语言处理+数据准备 Machine readable vector format 自然语言处理NLP的数据预处理有哪些共性,可以参考? 什么样的数据格式是深度学习 ...

  8. NLP语义标注模型数据准备及实战

    NLP语义标注模型数据准备及实战 目录 NLP语义标注模型数据准备及实战 流程示例 代码示例

  9. 通过构建DCA(Decision Curve Analysis)模型、获取模型数据并使用python进行绘图

    通过构建DCA(Decision Curve Analysis)模型.获取模型数据并使用python进行绘图 关于DCA(Decision Curve Analysis)的基本概念以及绘图方法参考 在 ...

最新文章

  1. 常见加密工具类Base64、DES、AES、RSA、MD5汇总
  2. 图卷积神经网络(GCN)理解与tensorflow2.0代码实现
  3. python集合和字典的区别_Python中的字典和集合
  4. [Network Architecture]DPN(Dual Path Network)算法详解(转)
  5. ViolinMemory上市遇低迷 唱衰闪存为哪般?
  6. 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
  7. Kubernetes详解(八)——Kubernetes资源配置清单
  8. 微型计算机原理王忠民PPT,微型计算机原理4 王忠民著.ppt
  9. Flutter 本地数据库sqflite实战操作
  10. 计算机无法安装64位操作系统,彻底根除“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题-网络教程与技术 -亦是美网络...
  11. matlab排序函数 下标,Matlab自带排序函数sort用法
  12. x265码率控制-VBV更新过程
  13. 营销公众号该如何运营大纲
  14. 学习使用github建立个人网站
  15. Unity关节的使用和举例,布娃娃系统
  16. Obsidian学习笔记(一):插件Excalidraw创建图表
  17. python神经网络反向传播_神经网络及反向传播算法
  18. 2010年计算机考研选择题解析,2009-2010计算机考研真题及答案(含选择题解析)WORD高清晰版.pdf...
  19. Java 设计模式 本文代码拉取链接 https://gitlab.com/zhangpengweiLJ/designpettern.git
  20. Tom小猫,让我看清你的五脏六腑1

热门文章

  1. 阿里云云盘开通后格式化和挂载数据盘
  2. 常用损失函数:交叉熵损失
  3. csdn博客markdown编辑器下修改图片大小及文字颜色
  4. 7 款 DevOps 工具管理 Kubernetes
  5. 【Jira数据自动化】Jira接口请求(一)
  6. FileSizeUtil
  7. AS01 AS02资产屏幕开发实例
  8. 【社区图书馆】30+危机,最值得读烂的5本书|必读
  9. c语言程序for循环处设断点,期中总结
  10. 5.Dict 字典类型