如何在.NET电子表格应用程序中创建流程图
前言
流程图是一种常用的图形化工具,用于展示过程中事件、决策和操作的顺序和关系。它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程。
在企业环境中,高管和经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列表不胜枚举。然而,一个新的问题出现了,这些流程图由谁来维护?流程图如何共享或协作?使用什么软件来创建它们?
为了解决上述的问题,今天小编就为大家介绍如何在.NET WinForms 应用程序中使用电子表格设计器组件在运行时创建形状操作流程图。

在.NET WinForms 中创建流程图
在.NET WinForms 中创建流程图可分为以下8个步骤:
- 设置.NET WinForms 项目
- 启用增强形状引擎
- 将形状添加到电子表格流程图
- 将文本添加到形状
- 将形状添加到电子表格流程图
- 将样式应用到形状
- 分组流程图形状
- 在 .NET WinForms 应用程序中保存并显示流程图
1.设置.NET WinForms 项目
打开Visual Studio软件,创建Windows 窗体应用程序并选择.NET6作为框架。
创建项目后,使用 NuGet 管理器安装GrapeCity.Spread.WinForms和GrapeCity.Spread.WinForms.Design。

安装完之后,导航到项目Form1.cs的设计器:

在 VS Designer 中,找到工具箱中的FpSpread和FpSpreadDesigner组件。将FpSpread组件拖放到窗体上,然后对FpSpreadDesigner组件执行相同的操作。接下来,在表单上添加一个按钮。

如果想要在运行时显示 FpSpreadDesigner,在 Forms1.cs 文件的按钮单击事件中调用 Spread Designer API 的 ShowDialog方法即可。
private void button2_Click(object sender, EventArgs e)
{
fpSpreadDesigner2.ShowDialog(fpSpread2);
}
2.启用增强形状引擎
项目设置完之后,必须启用增强形状引擎。默认情况下它不可用。这可以通过代码或设计器来完成。下面是两种启用增强形状引擎的方法:
(1)代码启用
// 启用形状引擎
fpSpread2.Features.EnhancedShapeEngine = true;
(2)使用设计器启用
要使用 Designer 的 UI 启用此属性,首先启动 Designer 应用程序。然后,使用 Spread 设计器的右侧面板,从下拉列表中选择Spread,查找Features,展开它,并将EnhancedShapeEngine更改为“True”。

3.将形状添加到电子表格流程图
使用 Spread Designer 的“插入”选项卡,选择“形状”下拉列表。

添加流程图。(添加完之后如下图所示)

4.将文本添加到形状

5.将形状添加到电子表格流程图
将鼠标悬停在连接器箭头的抓柄上,鼠标光标会发生变化。光标发生变化后,单击连接器端点并将其拖动到要连接的第一个形状的边框。然后看到连接点出现在您将连接器拖动到的形状上,显示可以锚定它的位置。选择位置后,您将看到连接点变为绿色,表明线条已连接到形状。

连接完之后的样式:

6.将样式应用到形状
此步骤介绍如何应用样式主题以及如何将自定义样式应用于形状。用户可以使用“形状格式”选项卡的“形状样式”部分自定义形状的背景颜色和轮廓颜色。

对于本例,流程图形状和连接器的样式如下:

7.分组流程图形状
对流程图形状进行分组可确保所有相关元素保持在一起并保持其预期布局,从而降低意外修改的风险。Spread 的设计器支持使用上下文菜单和/或工具栏的“组对象”按钮将形状分组在一起。
操作步骤如下方动图所示:

8.在 .NET WinForms 应用程序中保存并显示流程图
设计完流程图之后,就可以将设计器中的电子表格应用到 WinForms 应用程序了。在 Designer 的工具栏上,导航至“文件”菜单,选择“应用”和“退出”以应用所有更改,然后退出 Spread Designer。用户可以重新打开设计器并对流程图进行更改。

最终还可以将应用程序中创建的 .NET 流程图导出为 Excel (.XLSX) 文件,或使用 Spread Designer 的导入和导出功能导入现有的 Excel 文件流程图。

总结
至此,一个流程图的设置就完成了。如果您想了解更多信息,欢迎访问葡萄城官网了解。
扩展链接:
窗口函数大揭秘!轻松计算数据累计占比,玩转数据分析的绝佳利器
如何在.NET电子表格应用程序中创建流程图的更多相关文章
- 在C# WinForm程序中创建控件数组及相应的事件处理
控件数组是VB提供的一个优秀的设计解决方案,它能很方便快捷的处理大批同类控件的响应和时间处理,但不知为什么在C#中这个优秀特性没有传承下来,甚为可惜,本文将要探讨就是如何在C# WinForm程序实现 ...
- 如何在Hadoop的MapReduce程序中处理JSON文件
简介: 最近在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑.但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包. ...
- 如何在.NET Core控制台程序中使用依赖注入
背景介绍 依赖注入(Dependency Injection), 是面向对象编程中的一种设计原则,可以用来减低代码之间的耦合度.在.NET Core MVC中 我们可以在Startup.cs文件的Co ...
- 如何在 ASP.NET 应用程序中实现模拟用户身份(在ASP.NET中以管理员身份运行网站)
前言 在实际的项目开发中,我们可能会需要调用一些非托管程序,而有些非托管程序需要有更高的身份权限才能正确执行.本文介绍了如何让IIS承载的ASP.NET网站以特定的账户执行,比如Administrat ...
- 阿里P7级教你如何在Spring Boot应用程序中使用Redis
在Spring Boot应用程序中使用Redis缓存的步骤: 1.要获得Redis连接,我们可以使用Lettuce或Jedis客户端库,Spring Boot 2.0启动程序spring-boot-s ...
- 如何在MFC对话框应用程序中使用ColorPicker控件
在日常的应用程序开发中,当涉及到曲线绘制时,为了将多条不同类型的曲线区分开,常常需要将它们指定不同的颜色.今天在这里简单的记录一下,如何实现及使用ColorPicker控件.程序用到4个文件依次为:C ...
- [置顶] Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统
实验环境:Oracle 11g R2 RAC (11.2.0.3.5) Oracle Enterprise Linux 5.6 x86 1.创建 ASM 磁盘组 在两节点 ...
- 如何在linux用户空间程序中打印时间戳?
1. 使用clock_gettime接口即可 2. clock_gettime的使用方法: 2.1 定义一个结构体 struct timespec ts; 2.2 调用clock_gettime获取当 ...
- C# 在PDF中创建和填充域
C# 在PDF中创建和填充域 众所周知,PDF文档通常是不能编辑和修改的.如果用户需要在PDF文档中签名或者填写其他内容时,就需要PDF文档中有可编辑的域.开发者也经常会遇到将数据以编程的方式填充到P ...
- 【翻译】在Ext JS和Sencha Touch中创建自定义布局
原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...
随机推荐
- 2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1
2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1 ...
- 【python基础】复杂数据类型-列表类型(元组)
1.初识元组 列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的. 然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求 python将不能修改的值称为不可变的,而不可变的 ...
- 如何获取 C#程序 内核态线程栈
一:背景 1. 讲故事 在这么多的案例分析中,往往会发现一些案例是卡死在线程的内核态栈上,但拿过来的dump都是用户态模式下,所以无法看到内核态栈,这就比较麻烦,需要让朋友通过其他方式生成一个蓝屏的d ...
- 如何让别人访问你本地允许的Vue本地项目
步骤一: 将config/index.js 中的host: localhost 改为 host:'0.0.0.0'步骤二:在package.json 将scripts 下面的dev 后 ...
- 【Leetcode】 two sum #1 for rust solution
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. 示 ...
- 记一次加锁导致ECS服务器CPU飙高的处理
导航 火线告警,CPU飚了 版本回退,迅速救火 猜测:分布式锁是罪魁祸首 代码重构,星夜上线 防患未然,功能可开关 高度戒备,应对早高峰 实时调整方案,稳了 结语 参考 本文首发于智客工坊-<记 ...
- 数据库varchar和tinyint和int和java实体属性的对应关系的学习
大家好,最近做项目碰到群里小伙伴的对于项目中用到的这几个类型,自己的java实体类属性该用什么类型干到困惑,于是乎,我决定为大家解密! 相信我,绝对干货,看完了,工资+200~哈哈哈,扯远了,闲话不对 ...
- CentOS 8搭建Kubernetes-k8s集群-1.18.5
目录 环境配置 服务器信息 软件版本 环境正确性 端口正常开放 kube-master节点端口 kube-node节点端口 配置主机互信 配置hosts映射 配置ssh密钥 禁用swap 关闭SELi ...
- 代码随想录算法训练营第二天| LeetCode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
977.有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl ...
- 绕过PHP执行命令的函数执行系统cmd命令
<?php $evil=`set`; echo '<pre>'.$evil.'</pre>'; ?> 成功执行set命令,你懂的! 顺手写了个php执行cmd命令的 ...