python操作plsql (python操作es数据库)

生成效果:

python操作plsql,python操作visio

示例介绍:

新建一个visio文件,套用故障树模板,添加故障树的模型并连线。

通过这个例子,可以将结构化的信息变成可视化的故障树。例如,用excel先分析,然后抽取绘图。

import win32com.client as win32
from win32com.client import constants

appVisio = win32.gencache.EnsureDispatch("Visio.Application")

vdoc = appVisio.Documents.Add("FAULT_M.VSTX")

stn = appVisio.Documents.Open("FAULT_M.VSSX")

#选择其中第一页
page = vdoc.Pages.Item(1)

# 从模板中选择一种形状
masters = stn.Masters
master = masters.ItemU("Event")
shp1 = page.Drop(master, 6, 8)# shp1便于获取对象,然后进行其他的控制,例如修改内容、颜色、样式等
shp1.Text = '事件'
shp2 = page.Drop(masters.ItemU("OR gate"), 6, 6)
shp3 = []
shp3.append(page.Drop(masters.ItemU("Event"), 4, 4))
shp3[-1].Text = '原因A' #填写文字
shp3.append(page.Drop(masters.ItemU("Event"), 6, 4))
shp3[-1].Text = '原因B'
shp3.append(page.Drop(masters.ItemU("Event"), 8, 4))
shp3[-1].Text = '原因C'

# 连接添加的shape
# visAutoConnectDirDown可以将连线的箭头向下
shp1.AutoConnect(shp2, constants.visAutoConnectDirDown, masters.ItemU("Dynamic connector"))  
for shp in shp3:
	shp2.AutoConnect(shp, constants.visAutoConnectDirDown, masters.ItemU("Dynamic connector")) 

使用AutoConnect时,如果shape摆放过近,visio会自动调整shape的位置。

工具自动调整的效果如下:

python操作plsql,python操作visio

visio自动调节shape位置的效果

将下面3个的间距调大后,连线后就没有发生位置移动了。最终带文字的效果如下:

python操作plsql,python操作visio