提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2020-07-14 16:22:17.190|阅读 566 次
概述:本文主要介绍ComponentOne中的CalcEngine控件的使用极其功能,比如CalcEngine的入门教程、使用数据绑定跨数据源执行计算、处理多个数据集等。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
ComponentOne Enterprise 是一套专注于企业.NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含300多种.NET开发控件,可满足WinForm、WPF、UWP、ASP.NET MVC等七个.NET平台下的系统开发需求,并提供 表格数据管理、 数据可视化、 报表和文档、 日程安排、 输入和编辑、 导航和布局、 系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。ComponentOne中的CalcEngine是一个.NET标准库,可以在任何平台运行时分析和表达的评估上使用。
点击下载ComponentOne Studio Enterprise最新试用版
该库可用于:CalcEngine可用于ComponentOne中的所有.NET平台,并且该库作为nuget.org上的NuGet包提供。您也可以通过安装WinForms Edition获得示例代码。在本文中,我们将逐步介绍CalcEngine的主要功能,并展示它们如何工作。
CalcEngine入门
要开始使用CalcEngine,请创建一个.NET Framework 4.6.2+或.NET Core应用程序,然后将nuget.org中的C1.CalcEngine NuGet包添加到项目中。
创建简单表达式
如果您曾经使用过Excel,则使用CalcEngine创建和评估表达式非常简单明了。在这里,我们演示如何创建分配给CalcEngine的Expression属性的简单表达式,以及如何使用Evaluate函数获取结果。
var calcEngine = new C1CalcEngine(); calcEngine.Expression = “5+2”; var result = calcEngine.Evaluate()
CalcEngine还支持带有函数的更复杂的表达式。它支持Excel中的文本,日期时间,数学,逻辑,转换和聚合函数,以及各种常量和运算符。
使用数据绑定跨数据源执行计算
CalcEngine可以绑定到列表,数组或数据表等数据源。这有助于在对象和数据字段的集合上执行计算。在这里,我们有一个Store对象的集合,并使用CalcEngine将表达式应用于整个集合或单个对象。
public class Store { public int StoreId { get; set; } public double Sales { get; set; } } var collection = new List() { new Store { StoreId = 27, Sales = 150000.00 }, new Store { StoreId = 15, Sales = 20000.00 } }; // 1\. When you have to apply expression over an object: var engine = new C1CalcEngine (); engine.DataSource = collection[0]; engine.Expression = "[Sales]*2";
// 2\. When you have collection and aggregate function: var engine = new C1CalcEngine (); engine.DataSource = collection; engine.Expression = "Sum([Sales])"; var result = engine.Evaluate();
// 3\. When you have collection and need evaluate one entry: var engine = new C1CalcEngine(); engine.DataSource = collection; engine.CurrentIndex = 1; engine.Expression = "[Sales] / Sum([Sales])"; var result = engine.Evaluate();
处理多个数据收集
当信息分散到多个集合中时,很难一起处理这些数据。这是交叉引用会有所帮助的地方。在这种情况下,可以使用内置的Excel引擎的跨工作表引用。在交叉表引用中,单元格引用包括对另一个表中单元格的引用。
与Excel一样,它可以用在公式中,在该公式中输入目标工作表的名称,然后在单元格引用或单元格范围引用之前输入一个惊叹号(!)。calcEngine.Expression = "=Sum(Sheet1!A3:B7) + Sum(Sheet2!A3:B7)";为了能够创建上述表达式,每个数据源都应从实现GetValue()函数的IDataSheet派生:
public class SheetTable : DataTable, IDataSheet { public string Name { get => TableName; set => TableName = value; } public object GetValue(int col, int row) { return Rows[row][col]; } }在这里,GetValue从特定的行或列返回一个值。
//Method to generate data for C1CalcEngine private const string columnNames = "ABCDEF"; var sheet1 = GetDataTable("Sheet1"); var sheet2 = GetDataTable("Sheet2"); public static SheetTable GetDataTable(string sheetName) { var table = new SheetTable(); table.Name = sheetName; foreach (var col in columnNames) table.Columns.Add(col.ToString(), typeof(int)); for (int i = 0; i < 100; i++) table.Rows.Add(new object[] { i * 2, i * 3, i * 4, i * 5, i * 6, i * 7 }); return table; }最后,可以如下创建跨表表达式:
C1CalcEngine calcEngine = new C1CalcEngine(); calcEngine.DataSource = new List下图显示了交叉表引用的示例,其中从单元格引用中解析了表达式。{ sheet1, sheet2 }; //Assign the cross sheet reference expression to be calculated by C1CalcEngine calcEngine.Expression = "=Sum(Sheet1!A3:B7) + Sum(Sheet2!A3:B7)"; //Invoke the TryEvaluate method of C1CalcEngine to calculate the expression var res = calcEngine.TryEvaluate(out object result) ? result.ToString() : calcEngine.GetErrors().FirstOrDefault()?.FullMessage ?? "";
ComponentOne CalcEngine是一个功能强大的库,可以解决许多业务用例。componentone calcengine是一个功能强大的库,可以解决许多业务用例。欢迎使用,有任何问题欢迎回帖讨论
本文转载自葡萄城!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:雷达图又称蜘蛛图,是一种显示二维多元数据的图形方法。图表上的每个辐条代表一个不同的变量,数据点沿着这些辐条绘制。雷达图尤其适用于比较不同实体在多个标准中的表现。本文将演示如何使用 Spire.XLS for Python 通过 Python 在 Excel 中创建雷达图。
本文将为大家介绍如何使用图表控件SciChart WPF实现WPF应用程序的DPI感知,欢迎下载最新版组件体验!
本文将演示如何使用DevExpress WPF Grid控件实现移动和调整列大小,欢迎下载最新版组件体验!
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
行业认可的优秀Visual Studio控件集,涵盖信息系统开发所需的全部功能。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢