用Python读取Visio文件时解析属性与界面显示不符的问题排查
Visio文件解析与显示不符问题排查
我参考开源代码编写了一个离线Python模块,用于读取Microsoft Visio文件。由于没有Visio许可证,无法直接查看文件内容,但我知道Visio和多数Office文件一样,是包含XML结构的压缩包,其中包含pages文件、master文件和relationship文件。
处理某份Visio文件时,我遇到了解析数据与同事实际显示内容不符的问题:同事用Visio打开文件时部分字段为空,但我的模块默认读取master形状并添加属性后,会多出不必要的数据;仅读取shapeN.xml中的形状数据时,又会丢失需要的信息。
测试结果对比
- 同事实际显示(预期结果):Item1的Item property1为A,Item property2为空,Item property3为C
- 读取master形状的结果:Item1的Item property1为A,Item property2为B,Item property3为C
- 仅读取形状数据的结果:Item1的Item property1为A,Item property2和3为空
从测试结果能看出,所需信息存储在master文件中,结合相关技术讨论,我提出两个疑问:
- 是否是Visio用户的设置或菜单导致无法看到某个值?但同事的屏幕明确显示该值为空,和我解析的结果不一致。
- Visio实际显示的值是否存储在某个特定位置?因为文件在不同电脑上保存加载后显示结果一致,如果确实如此,这个位置在哪里?
内容的提问来源于stack exchange,提问作者PackSciences
相关产品推荐
相关产品推荐

