关于 syncfusion-dotnet-calculate
此技能为 Syncfusion dotnet Calculate 生成公式解析与求值的 C# 示例,面向使用该库的开发者。它依据参考文档生成代码,并要求在写入文件前取得同意。
主要功能
- 01公式解析与求值示例
- 02自定义函数注册示例
- 03CalcEngine 与 CalcQuickBase 指引
- 04仅依据参考文档生成代码
- 05修改文件前征求同意
适用场景
- 01创建公式计算示例
- 02添加自定义公式函数
- 03集成带单元格引用的计算
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ document-sdk-skills --skill syncfusion-dotnet-calculate安装后在 Claude Code 中输入/syncfusion-dotnet-calculate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/calcengine.mdcalcquickbase.mdcustomfunction.mdgetting-started.mdicalcdata.mdnamedranges.mdoperators.mdoverview.mdparse-compute.mdperformance.mdxlsio.md详细介绍
Syncfusion dotnet Calculate
概述
使用 Syncfusion dotnet Calculate 解析和计算公式。它会生成 C# 代码,以实现交互式公式计算功能,包括表达式解析、依赖项解析,以及计算值的运行时求值。
快速入门示例
示例 1
用户:“展示如何使用 CalcEngine 解析和计算公式”
**结果:**生成用于解析和计算公式的 C# 代码
示例 2
用户:“向计算控件添加自定义公式,以比较两个字符串”
**结果:**生成用于创建自定义函数的 C# 代码
为用户的项目生成 C# 代码 (默认)
触发关键词:“代码”、“代码片段”、“如何编写”、“Program.cs”、“展示”、“样例”、“代码示例”、“为……生成代码”、“NuGet”、“添加到项目”、“集成”、“实现”、“用法示例”、“API 示例”、“计算公式”、“求表达式的值”、“计算结果”、“解析公式”、“注册变量”、“跨工作表公式”、“使用 CalcQuickBase”、“使用 CalcEngine”、“使用 ICalcData”、“使用单元格引用进行计算”、“自动计算”、“刷新计算”、“重置键”、“格式化结果”、“区域设置”、“自定义函数”、“用户定义公式”、“注册函数”、“LibraryFunctions”、“ExcelLikeComputations”、“迭代计算”、“暂停计算”、“支持的公式”、“列出公式”、“ParseAndCompute”、“parseAndComputeFormula”。
步骤 1 — 分析用户请求
- 阅读用户的请求并提取功能关键词。
- 如果存在相关的 reference/*.md 文件,则仅使用这些文件作为生成代码的事实来源。
- 如果没有匹配的参考文件,则使用 references/getting-started.md 中的示例生成代码。
步骤 2 — 同意与目标位置确认(执行任何文件操作前必须询问)
在生成或写入任何内容之前,询问用户:
I'm ready to generate your Syncfusion Calculate sample.
Where should I place it?
1) Create a new Form file in the skill's "output" folder (recommended for quick tryout)
2) Add or modify an existing file in your project (please provide the full file path; choose append or replace)
3) Say "Just show me the code" to get the snippet here without modifying any files.
规则
- 在用户选择一个选项或说“只展示代码”之前,不要继续。
- 如果用户拒绝修改文件:
- 仅在聊天中展示 C# 代码
- 不创建或更改任何文件
- **仅适用于选项 2:**生成代码之前,检查项目是否具备
references/getting-started.md中的前提条件(“前提条件和设置要求”部分)。如果缺少,则征求用户同意并添加。
步骤 3 — 生成代码(严格遵循仅参考文档的规则)
- 始终使用 getting-started.md 中“最小代码”部分的示例代码结构,作为创建 Calculate 的基础模板。
- 严格按照 references/*.md(例如 getting-started.md、Xlsio.md)中展示的方式使用 API。
- 切勿臆造 API 或猜测其行为。
- 如果任何参考文件都未记录该功能,则告知用户该功能不可用。
步骤 4 — 应用更改(仅在获得同意后)
选项 A — 在技能文件夹中创建新文件
-
在技能根目录下创建名为
output/的文件夹(如果尚不存在)。 -
默认文件名:
CalculateSample.cs -
如果文件已存在,请询问: “名为 ‘CalculateSample.cs’ 的文件已存在。要覆盖、追加,还是使用其他名称?”
-
等待用户决定后再写入任何内容。
-
写入生成的 C# 内容。
选项 B — 修改用户项目中的文件
- 询问: “要修改哪个文件?请提供完整文件路径(例如:D:\Project\program.cs)”
- 等待用户明确确认。
- 如果用户只回复“2”(选项编号)而未提供路径 → 再次询问。
- 切勿猜测或推断文件路径。
- 确认后,应用所请求的更改(覆盖或追加)。
选项 C — 仅展示代码
- 在聊天中显示生成的 C# 代码。
- 不要创建或修改任何文件。
代码参考
所有模板和功能片段都位于 references/*.md 中。每个文件都包含一个聚焦的代码片段,Agent 会在生成示例时将这些片段组合起来。
流程:始终从 references/getting-started.md(Prerequisites and Setup Requirements 部分)开始,然后合并匹配的功能片段。如果没有匹配的功能关键词,则仅返回基本示例。
| 文件 | 内容 |
|---|---|
| getting-started.md | 先决条件、NuGet 包设置、Program.cs 配置、CalcQuickBase 和 ICalcData 的最简代码示例、跨工作表引用、区域性设置、快速参考表 |
| calcquickbase.md | ParseAndCompute 方法、使用方括号表示法注册变量、计算表达式和内置公式、用于自动重新计算的 AutoCalc、RefreshAllCalculations、ResetKeys 方法、关键属性和方法、基于索引器的访问 |
| icalcdata.md | ICalcData 接口实现、SetValueRowCol/GetValueRowCol 方法、WireParentObject 方法、ValueChanged 事件、完整实现示例、与 CalcEngine 集成、跨工作表引用、数据网格集成 |
| calcengine.md | ParseFormula 方法、ComputeFormula 方法、ParseAndComputeFormula 方法、使用 RegisterGridAsSheet 和 CreateSheetFamilyID 的跨工作表引用、区域/区域性设置(ParseDecimalSeparator、ParseArgumentSeparator)、错误字符串、按类别列出的受支持内置公式 |
| customfunction.md | LibraryFunction 委托、自定义函数创建、向 CalcEngine 注册、示例(CustomMin、CustomMax、ApplyDiscount、CalculateGrade、CompoundInterest)、RemoveFunction 方法、管理库函数、错误处理、最佳实践 |
| xlsio.md | XlsIO 集成、ExcelEngine 初始化、启用/禁用工作表计算(EnableSheetCalculations/DisableSheetCalculations)、在运行时设置和计算值、批量更新期间暂停计算(CalculatingSuspended)、CalculatedValue 属性、表格公式、完整工作流、错误处理 |
| overview.md | 400 多个预定义函数及其类别、支持的环境和平台、非 UI 组件架构、支持的公式类型、函数类别参考、典型用例、与 XlsIO 集成 |
| parse-compute.md | ParseFormula 方法和 RPN 转换、用于基于堆栈求值的 ComputeFormula 方法、ParseAndComputeFormula 组合方法、运算符优先级和解析顺序、错误处理和错误字符串、格式化计算结果(小数、百分比、货币)、性能优化 |
| operators.md | 公式运算符及其优先级、计算中支持的运算符 |
| namedranges.md | 对命名范围的支持,以简化复杂公式 |
| performance.md | 性能优化技巧和最佳实践 |
规则
-
仅使用参考片段
- 生成的代码必须仅来源于 references/ 下的 Markdown 文件
- 不得编造、猜测或加入 references/*.md 中未出现的任何属性、事件、API 方法、组件名称或参数
-
未经许可不得修改文件
- 未经用户明确选择和确认,不得在用户工作区中创建或修改文件/文件夹。
-
不支持的功能处理
- 如果用户请求的功能在 references/*.md 中没有对应片段,请回复:
That feature is not currently supported by the Syncfusion Calculate Library. - 仅当存在对应片段时,才建议最接近的受支持功能
- 明确列出不支持的项目,且不得为其合成代码
- 如果用户请求的功能在 references/*.md 中没有对应片段,请回复:
-
写入前验证
- 写入前再次验证,确保所有代码块均源自 references/*.md 文件
- 如果验证失败,请停止并告知用户