如何用C#/VB/VB.NET通过Visio Interop自动化更改跨职能流程图方向
更改Visio 2019跨职能流程图方向的自动化实现(C#/VB/VB.NET)
核心实现逻辑
跨职能流程图的方向可通过Visio Interop的FlowChart.SetDirection方法直接设置,对应手动操作的"方向"选项,无需模拟点击菜单/功能区。
C# 实现代码
using Microsoft.Office.Interop.Visio; class VisioFlowChartDirectionHandler { static void Main() { // 初始化Visio应用实例 Application visioApp = new Application(); visioApp.Visible = true; // 设为true可可视化操作过程 // 打开目标跨职能流程图文档 Document targetDoc = visioApp.Documents.Open(@"C:\YourFlowChartFile.vsdx"); Page targetPage = targetDoc.Pages[1]; // 获取文档第一页(根据实际页面调整索引) // 设置方向为「从左到右」 FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionLeftToRight); // 若需设置「从右到左」,替换为以下代码: // FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionRightToLeft); // 保存更改 targetDoc.Save(); // 可选:释放COM资源并关闭Visio // targetDoc.Close(); // visioApp.Quit(); // System.Runtime.InteropServices.Marshal.ReleaseComObject(targetPage); // System.Runtime.InteropServices.Marshal.ReleaseComObject(targetDoc); // System.Runtime.InteropServices.Marshal.ReleaseComObject(visioApp); } }
VB.NET 实现代码
Imports Microsoft.Office.Interop.Visio Module VisioFlowChartDirectionModule Sub Main() ' 初始化Visio应用实例 Dim visioApp As New Application() visioApp.Visible = True ' 设为True可可视化操作过程 ' 打开目标跨职能流程图文档 Dim targetDoc As Document = visioApp.Documents.Open("C:\YourFlowChartFile.vsdx") Dim targetPage As Page = targetDoc.Pages(1) ' 获取文档第一页(根据实际页面调整索引) ' 设置方向为「从左到右」 FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionLeftToRight) ' 若需设置「从右到左」,替换为以下代码: ' FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionRightToLeft) ' 保存更改 targetDoc.Save() ' 可选:释放COM资源并关闭Visio ' targetDoc.Close() ' visioApp.Quit() ' System.Runtime.InteropServices.Marshal.ReleaseComObject(targetPage) ' System.Runtime.InteropServices.Marshal.ReleaseComObject(targetDoc) ' System.Runtime.InteropServices.Marshal.ReleaseComObject(visioApp) End Sub End Module
注意事项
- 需在项目中添加Microsoft.Office.Interop.Visio引用:可通过NuGet安装
Microsoft.Office.Interop.Visio包,或直接添加COM组件中的「Microsoft Visio xx.x Object Library」(xx.x对应Visio 2019版本) - 若创建新的跨职能流程图,可将打开文档的代码替换为:
// C# 创建新跨职能流程图 Document newDoc = visioApp.Documents.Add("Cross Functional Flowchart.vst");' VB.NET 创建新跨职能流程图 Dim newDoc As Document = visioApp.Documents.Add("Cross Functional Flowchart.vst") - 确保Visio文档未被锁定或只读,否则保存操作会失败
内容的提问来源于stack exchange,提问作者user1242840
相关产品推荐
相关产品推荐

