python - 在 Python 中获取 Visio 中的形状层

标签 python visio

我正在尝试选择现有 Visio 文件中的所有形状,即 i. e.在“帮助”层中删除它们。有没有办法使用 python 包“vsdx”来实现这一点?

最佳答案

您可以使用CreateSelection method带参数 visSelTypeByLayer = 3

现在我那里没有Python环境,我的简单VBA代码

Sub SOF_77409035()
Dim Sh As Shape
Dim sl As Selection
ActiveWindow.DeselectAll ' deselect all   
Set sl = ActivePage.CreateSelection(3, 0, "help") ' create selection in memory    
For Each Sh In sl ' iterate all shapes in selection    
'    ActiveWindow.Select Sh, 2 ' select shape visSelect = 2    
     sh.delete    
Next    
End Sub   


更新 此 python 代码可以打印属于图层的形状列表。
但它无法选择这些形状。

import win32com.client as w32 
visio = w32.Dispatch("visio.Application") 
visio.Visible = 1 
win = visio.activewindow
doc = visio.activedocument
pag = doc.pages(1)
sl = pag.createselection(3, 0,"help")
for i in range (1, sl.count+1):
    sh = sl.item(i)
    sh.delete 

附注 vsdx python packagepoor documentation ,我怀疑这是不可能的。

关于python - 在 Python 中获取 Visio 中的形状层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77409035/

相关文章:

ms-office - 如何比较两个 visio 文件并报告它们之间的差异?

python - 在python中解析sql查询

python - 全局步长不从 0 开始

python - 从昨天开始我就面临着 Twitter 的 snscrape 问题

visual-studio - 如何获得内置 .net 类的漂亮类图?

asp.net - visio 服务器端自动化的替代方案

python - 如何启用跨 Django 站点的身份验证,并透明地保留任何 POST 或 GET 数据?

python - 在测试序列中的测试之间保存数据的模式

Visio 2013 : How to reduce width of built-in UML class shape?

维西奥 2003 : UML class diagrams - abstract class