当前位置: 首页 > 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;}}
}

相关文章:

.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.Gen…...

HarmonyOS ArkUi @CustomDialog 和promptAction.openCustomDialog踩坑以及如何选择

CustomDialog 内使用Link&#xff0c;如何正常使用 错误使用方式&#xff1a; 定义一个函数&#xff0c;在函数内使用弹窗&#xff0c;如下面代码showDialog&#xff1a; 这种使用方式&#xff0c;无法在自定义的CustomDialog内使用 Link&#xff0c;进行父子双向绑定&#x…...

Python面试题:详细讲解Python的多线程与多进程编程问题

在 Python 中&#xff0c;多线程和多进程编程是并发编程的两种主要方式&#xff0c;用于提高程序的执行效率和响应性。虽然它们都可以实现并发执行&#xff0c;但它们的工作原理和适用场景有所不同。以下是对 Python 多线程和多进程编程的详细讲解&#xff0c;包括它们的工作原…...

前端Canvas入门——用canvas写五子棋?

前言 五子棋的实现其实不难&#xff0c;因为本身就是一个很小的游戏。 至于画线什么的&#xff0c;其实很简单&#xff0c;都是lineTo()&#xff0c;moveTo()就行了。 难的在于——怎么让棋子落入到指定的格子上&#xff0c;怎么判断连子胜利。 当然啦&#xff0c;这部分是…...

[PaddlePaddle飞桨] PaddleDetection-通用目标检测-小模型部署

PaddleDetection的GitHub项目地址 推荐环境&#xff1a; PaddlePaddle > 2.3.2 OS 64位操作系统 Python 3(3.5.1/3.6/3.7/3.8/3.9/3.10)&#xff0c;64位版本 pip/pip3(9.0.1)&#xff0c;64位版本 CUDA > 10.2 cuDNN > 7.6pip下载指令&#xff1a; python -m pip i…...

Golang | Leetcode Golang题解之第239题滑动窗口最大值

题目&#xff1a; 题解&#xff1a; func maxSlidingWindow(nums []int, k int) []int {n : len(nums)prefixMax : make([]int, n)suffixMax : make([]int, n)for i, v : range nums {if i%k 0 {prefixMax[i] v} else {prefixMax[i] max(prefixMax[i-1], v)}}for i : n - 1…...

深度解析:在 React 中实现类似 Vue 的 KeepAlive 组件

在前端开发中&#xff0c;Vue 的 keep-alive 组件是一个非常强大的工具&#xff0c;它可以在组件切换时缓存组件的状态&#xff0c;避免重新渲染&#xff0c;从而提升性能。那么&#xff0c;如何在 React 中实现类似的功能呢&#xff1f;本文将带你深入探讨&#xff0c;并通过代…...

2024-7-20 IT新闻

目录 微软全球IT系统故障 中国量子计算产业峰会召开 其他IT相关动态 微软全球IT系统故障 后续处理&#xff1a; 微软和CrowdStrike均迅速响应&#xff0c;发布了相关声明并部署了修复程序。CrowdStrike撤销了有问题的软件更新&#xff0c;以帮助用户恢复系统正常运作。微软也…...

前端组件化开发:以Vue自定义底部操作栏组件为例

摘要 随着前端技术的不断演进&#xff0c;组件化开发逐渐成为提升前端开发效率和代码可维护性的关键手段。本文将通过介绍一款Vue自定义的底部操作栏组件&#xff0c;探讨前端组件化开发的重要性、实践过程及其带来的优势。 一、引言 随着Web应用的日益复杂&#xff0c;传统的…...

11.斑马纹列表 为没有文本的链接设置样式

斑马纹列表 创建一个背景色交替的条纹列表。 使用 :nth-child(odd) 或 :nth-child(even) 伪类选择器,根据元素在一组兄弟元素中的位置,对匹配的元素应用不同的 background-color。 💡 提示:你可以用它对其他 HTML 元素应用不同的样式,如 <div>、<tr>、<p&g…...

【算法】跳跃游戏II

难度&#xff1a;中等 题目&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[…...

学习大数据DAY20 Linux环境配置与Linux基本指令

目录 Linux 介绍 Linux 发行版 Linux 和 Windows 比较 Linux 就业方向&#xff1a; 下载 CentOS Linux 目录树 Linux 目录结构 作业 1 常用命令分类 文件目录类 作业 2 vim 编辑文件 作业 3 你问我第 19 天去哪了&#xff1f;第 19 天在汇报第一阶段的知识总结&#xff0c;没什…...

达梦+flowable改造

原项目springbootflowablemysql模式现需改造springbootflowable达梦&#xff0c; 1.在项目中引入达梦jpa包 引入高版本包已兼容flowable&#xff08;6.4.2&#xff09;liquibase&#xff08;3.6.2&#xff09; 我没有像网上做覆盖及达梦配置 <dependency> …...

【乐吾乐2D可视化组态编辑器】消息

消息 乐吾乐2D可视化组态编辑器demo&#xff1a;https://2d.le5le.com/ 监听消息 const fn (event, data) > {}; meta2d.on(event, fn);// 监听全部消息 meta2d.on(*, fn);// 取消监听 meta2d.off(event, fn); meta2d.off(*, fn); Copy 系统消息 event&#xff08;…...

Qt创建列表,通过外部按钮控制列表的选中下移、上移以及左侧图标的显现

引言 项目中需要使用列表QListWidget,但是不能直接拿来使用。需要创建一个列表,通过向上和向下的按钮来向上或者向下移动选中列表项,当当前项背选中再去点击确认按钮,会在列表项的前面出现一个图标。 实现效果 本实例实现的效果如下: 实现思路 思路一 直接采用QLis…...

svn不能记住密码,反复弹出GNOME,自动重置svn.simple文件

1. 修改文件 打开 ~/.subversion/auth/svn.simple/xxx 更新前 K 15 svn:realmstring V 32 xxxxx //svn 地址&#xff0c;库的地址 K 8 username V 4 xxx //用户名 END在顶部插入下面内容&#xff0c; 注意&#xff0c;如果密码不对&#xff0c;则文件文法正常生效 更新后…...

对称加密与非对称加密

对称加密 对称加密指的是加密和解密使用同一个秘钥,所以叫对称加密。对称加密只有一个秘钥,称为私钥。 优点:算法公开、计算量小、加密速度快、效率高 缺点:数据传输前,发送方和接收方必须确定好秘钥,双方也必须要保存好秘钥。 常见对称加密算法: DES、3DES、AES、3…...

03 Git的基本使用

第3章&#xff1a;Git的基本使用 一、创建版本仓库 一&#xff09;TortoiseGit ​ 选择项目地址&#xff0c;右键&#xff0c;创建版本库 ​ 初始化git init版本库 ​ 查看是否生成.git文件&#xff08;隐藏文件&#xff09; 二&#xff09;Git ​ 选择项目地址&#xff0c…...

【Linux】将IDEA项目部署到云服务器上,让其成为后台进程(保姆级教学,满满的干货~~)

目录 部署项目到云服务器什么是部署一、 创建MySQL数据库二、 修改idea配置项三、 数据打包四、 部署云服务器五、开放端口号六 、 验证程序 部署项目到云服务器 什么是部署 ⼯作中涉及到的"环境" 开发环境:开发⼈员写代码⽤的机器.测试环境:测试⼈员测试程序使⽤…...

IDEA的断点调试(Debug)

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...