当前位置: 首页 > news >正文

.net dataexcel 脚本公式 函数源码

示例如:

ScriptExec(""sum(1, 2, 3, 4)"") 结果等于10

using Feng.Excel.Builder;
using Feng.Excel.Collections;
using Feng.Excel.Interfaces;
using Feng.Script.CBEexpress;
using Feng.Script.Method;
using System;
using System.Collections.Generic;
using System.Drawing;namespace Feng.Excel.Script
{[Serializable]public class ScriptFunctionContainer : DataExcelMethodContainer{public const string Function_Name = "DataExcelScript";public const string Function_Description = "脚本函数";public override string Name{get { return Function_Name; }}public override string Description{get { return Function_Description; }}public ScriptFunctionContainer(){BaseMethod model = null;model = new BaseMethod();model.Name = "ScriptExec";model.Description = "执行脚本";model.Eg = @"=ScriptExec(""sum(1, 2, 3, 4)"") 结果等于10";model.Function = ScriptExec;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptIF";model.Description = "第一参数为True返回第二个参数,否则返加第三个参数";model.Eg = @"ScriptIF(1>2,10,30)结果等于30";model.Function = ScriptIF;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptIsNull";model.Description = "第一参数为null返回第二个参数,否则返加第一个参数";model.Eg = @"ScriptIsNull(null,1)";model.Function = ScriptIsNull;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptArg";model.Description = @"获取或设置参数 ScriptArg(""argname"")";model.Eg = @"ScriptArg(""argname"")";model.Function = ScriptArg;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptExecG";model.Description = @"在传第一个参数表格上执行脚本 ScriptExecG(grid)";model.Eg = @"ScriptExecG(grid)";model.Function = ScriptExecG;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptSaveContext";model.Description = @"保存当前执行上下文 ScriptSaveContext()";model.Eg = @"var context=ScriptSaveContext()";model.Function = ScriptSaveContext;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptReStoreContext";model.Description = @"还原当前上下文 ScriptReStoreContext(context)";model.Eg = @"ScriptReStoreContext(context)";model.Function = ScriptReStoreContext;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptSwitchContext";model.Description = @"切换当前上下文 ScriptSwitchContext(grid,cell)";model.Eg = @"ScriptSwitchContext(grid,cell)";model.Function = ScriptSwitchContext;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptCellValueChanged";model.Description = @"获取或设置单元格值变化时脚本 ScriptCellValueChanged(cell,script)";model.Eg = @"ScriptCellValueChanged(cell,script)";model.Function = ScriptCellValueChanged;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptCellClick";model.Description = @"获取或设置单元格单击时脚本 ScriptCellClick(cell,script)";model.Eg = @"ScriptCellClick(cell,script)";model.Function = ScriptCellClick;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptCellDoubleClick";model.Description = @"获取或设置单元格双击时脚本 ScriptCellDoubleClick(cell,script)";model.Eg = @"ScriptCellDoubleClick(cell,script)";model.Function = ScriptCellDoubleClick;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptCellKeyDown";model.Description = @"获取或设置单元格键盘按下时脚本 ScriptCellKeyDown(cell,script)";model.Eg = @"ScriptCellKeyDown(cell,script)";model.Function = ScriptCellKeyDown;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptCellKeyUp";model.Description = @"获取或设置单元格键盘抬起时脚本 ScriptCellKeyUp(cell,script)";model.Eg = @"ScriptCellKeyUp(cell,script)";model.Function = ScriptCellKeyUp;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridEndEdit";model.Description = @"获取或设置表格结束编辑时脚本 ScriptGridEndEdit(grid,script)";model.Eg = @"ScriptGridEndEdit(grid,script)";model.Function = ScriptGridEndEdit;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridLoadCompleted";model.Description = @"获取或设置表格加载结束时脚本 ScriptGridLoadCompleted(grid,script)";model.Eg = @"ScriptGridLoadCompleted(grid,script)";model.Function = ScriptGridLoadCompleted;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridClick";model.Description = @"获取或设置表格单击脚本 ScriptGridClick(grid,script)";model.Eg = @"ScriptGridClick(grid,script)";model.Function = ScriptGridClick;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridDoubleClick";model.Description = @"获取或设置表格双击脚本 ScriptGridDoubleClick(grid,script)";model.Eg = @"ScriptGridDoubleClick(grid,script)";model.Function = ScriptGridDoubleClick;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridValueChanged";model.Description = @"获取或设置表格值改变时脚本 ScriptGridValueChanged(grid,script)";model.Eg = @"ScriptGridValueChanged(grid,script)";model.Function = ScriptGridValueChanged;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridKeyDown";model.Description = @"获取或设置表格键按下时脚本 ScriptGridKeyDown(grid,script)";model.Eg = @"ScriptGridKeyDown(grid,script)";model.Function = ScriptGridKeyDown;MethodList.Add(model);model = new BaseMethod();model.Name = "ScriptGridKeyUp";model.Description = @"获取或设置表格键抬起时脚本 ScriptGridKeyUp(grid,script)";model.Eg = @"ScriptGridKeyUp(grid,script)";model.Function = ScriptGridKeyUp;MethodList.Add(model);}public virtual object ScriptGridKeyUp(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyKeyUp;}string script = base.GetTextValue(2, args);cell.PropertyKeyUp = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridKeyDown(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyKeyDown;}string script = base.GetTextValue(2, args);cell.PropertyKeyDown = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridValueChanged(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyValueChanged;}string script = base.GetTextValue(2, args);cell.PropertyValueChanged = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridDoubleClick(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyDoubleClick;}string script = base.GetTextValue(2, args);cell.PropertyDoubleClick = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridClick(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyClick;}string script = base.GetTextValue(2, args);cell.PropertyClick = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridLoadCompleted(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyDataLoadCompleted;}string script = base.GetTextValue(2, args);cell.PropertyDataLoadCompleted = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptFormClosing(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyFormClosing;}string script = base.GetTextValue(2, args);cell.PropertyFormClosing = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptGridEndEdit(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){DataExcel cell = base.GetArgIndex(1, args) as DataExcel;if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyEndEdit;}string script = base.GetTextValue(2, args);cell.PropertyEndEdit = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptCellKeyUp(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){ICell cell = base.GetCell(1, args);if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyOnKeyUp;}string script = base.GetTextValue(2, args);cell.PropertyOnKeyUp = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptCellKeyDown(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){ICell cell = base.GetCell(1, args);if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyOnKeyDown;}string script = base.GetTextValue(2, args);cell.PropertyOnKeyDown = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptCellDoubleClick(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){ICell cell = base.GetCell(1, args);if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyOnDoubleClick;}string script = base.GetTextValue(2, args);cell.PropertyOnDoubleClick = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptCellClick(params object[] args){  Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){ICell cell = base.GetCell(1, args);if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyOnClick;}string script = base.GetTextValue(2, args);cell.PropertyOnClick = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptCellValueChanged(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){ICell cell = base.GetCell(1, args);if (cell == null){return Feng.Utils.Constants.Fail;}if (args.Length == 2){return cell.PropertyOnCellValueChanged;}string script = base.GetTextValue(2, args);cell.PropertyOnCellValueChanged = script;return Feng.Utils.Constants.OK;}return null;}public virtual object ScriptArg(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){string key = base.GetTextValue(1, args);if (args.Length == 3){object value = base.GetArgIndex(2, args);proxy.SetKeyValue(key, value);return Feng.Utils.Constants.OK;}return proxy.GetKeyValue(key);}return null;}public virtual object ScriptIsNull(params object[] args){if (args.Length > 1){object value1 = args[1];object value2 = args[2];if (value1 == null){return value2;}else{return value1;}}return null;}public virtual object ScriptIF(params object[] args){if (args.Length > 2){object value1 = args[1];object value2 = args[2];object value3 = args[3];bool res = Feng.Utils.ConvertHelper.ToBoolean(value1);if (res){return value2;}else{return value3;}}return null;}public virtual object ScriptExec(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){string txt = base.GetTextValue(1, args);int len = args.Length - 2;if (len > 0){object[] values = new object[len];for (int i = 0; i < len; i++){values[i] = args[i + 2];}return ScriptBuilder.Exec(proxy.Grid, proxy.CurrentCell, txt, values);}return ScriptBuilder.Exec(proxy.Grid, proxy.CurrentCell, txt);}return null;}public virtual object ScriptExecG(params object[] args){DataExcel grid = base.GetArgIndex(1, args) as DataExcel;string txt = base.GetTextValue(2, args);int len = args.Length - 3;if (len > 0){object[] values = new object[len];for (int i = 0; i < len; i++){values[i] = args[i + 3];}return ScriptBuilder.Exec(grid, null, txt, values);}return ScriptBuilder.Exec(grid, null, txt);}public virtual object ScriptSaveContext(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){Feng.Collections.HashtableEx scriptContext = new Feng.Collections.HashtableEx();scriptContext.Add("Grid", proxy.Grid);scriptContext.Add("Cell", proxy.CurrentCell);return scriptContext;}return null;}public virtual object ScriptReStoreContext(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){Feng.Collections.HashtableEx scriptContext = base.GetArgIndex(1, args) as Feng.Collections.HashtableEx;if (scriptContext != null){proxy.Grid = scriptContext["Grid"] as DataExcel;proxy.CurrentCell= scriptContext["Cell"] as ICell;return Feng.Utils.Constants.OK;}}return Feng.Utils.Constants.Fail;}public virtual object ScriptSwitchContext(params object[] args){Feng.Excel.Script.DataExcelScriptStmtProxy proxy = args[0] as Feng.Excel.Script.DataExcelScriptStmtProxy;if (proxy != null){proxy.Grid = base.GetArgIndex(1, args) as DataExcel;proxy.CurrentCell = base.GetArgIndex(2, args) as ICell;return Feng.Utils.Constants.OK; }return Feng.Utils.Constants.Fail;}}
}

相关文章:

  • 在 K8s 上使用 KubeBlocks 提供的 MySQL operator 部署高可用 WordPress 站点
  • MySQL索引特性(上)
  • 什么是死锁 , 以及产生的原因详细介绍
  • 1.6.丢弃法
  • 论文复现:Predictive Control of Networked Multiagent Systems via Cloud Computing
  • x264 编码器 CAVLC 熵编码源码分析
  • Alpine Linux 轻量级Linux 适合于 docker 容器镜像
  • 浏览器缓存:强缓存与协商缓存实现原理有哪些?
  • HTTPS请求头缺少HttpOnly和Secure属性解决方案
  • 微服务实战系列之玩转Docker(二)
  • redis基本类型和订阅
  • 数据结构之初始二叉树(2)
  • docker网络互联
  • 机器学习-20-基于交互式web应用框架streamlit的基础使用教程
  • 企业如何查看员工的上网时长和记录?如何查看公司局域网员工电脑的上网记录
  • 【comparator, comparable】小总结
  • 【刷算法】从上往下打印二叉树
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Fundebug计费标准解释:事件数是如何定义的?
  • JS函数式编程 数组部分风格 ES6版
  • Leetcode 27 Remove Element
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Yeoman_Bower_Grunt
  • 关于字符编码你应该知道的事情
  • 批量截取pdf文件
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 你对linux中grep命令知道多少?
  • 积累各种好的链接
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)(1.9) MSP (version 4.2)
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (过滤器)Filter和(监听器)listener
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)UDP基本编程步骤
  • (一)WLAN定义和基本架构转
  • (转)jdk与jre的区别
  • (自用)交互协议设计——protobuf序列化
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET C# 配置 Options
  • .NET 反射的使用