第16章-脚本与宏功能
第十六章:脚本与宏功能
16.1 ReoScript简介
ReoGrid集成了ReoScript脚本引擎,支持在电子表格中执行脚本。
using unvell.ReoScript;
public class ScriptBasics
{
private ReoGridControl grid;
public void ExecuteScript(string script)
{
var srm = grid.Srm; // Script Runtime Machine
srm.Run(script);
}
public void SimpleScript()
{
var script = @"
// 设置单元格值
sheet.cells['A1'].data = 'Hello from script';
sheet.cells['A2'].data = 100;
// 计算
var sum = sheet.cells['A2'].data + 50;
sheet.cells['A3'].data = sum;
";
ExecuteScript(script);
}
}
16.2 脚本访问工作表
public class ScriptWorksheetAccess
{
public void AccessWorksheetFromScript(ReoGridControl grid)
{
var script = @"
// 获取当前工作表
var sheet = workbook.currentWorksheet;
// 设置数据
for (var i = 0; i < 10; i++) {
sheet.cells[i, 0].data = i + 1;
sheet.cells[i, 1].data = (i + 1) * 10;
}
// 设置样式
sheet.setRangeStyle('A1:B1', {
backColor: '#4472C4',
textColor: '#FFFFFF',
bold: true
});
";
grid.Srm.Run(script);
}
}
16.3 注册C#函数到脚本
public class RegisterFunctionsToScript
{
public void RegisterFunctions(ReoGridControl grid)
{
var srm = grid.Srm;
// 注册C#函数到脚本
srm["myFunction"] = new NativeFunctionObject("myFunction", (args) =>
{
var param = Convert.ToInt32(args[0]);
return param * 2;
});
// 在脚本中调用
var script = @"
var result = myFunction(10);
sheet.cells['A1'].data = result; // 输出20
";
srm.Run(script);
}
}
16.4 宏录制与回放
public class MacroRecording
{
private List<Action> recordedActions = new List<Action>();
private bool isRecording = false;
public void StartRecording()
{
isRecording = true;
recordedActions.Clear();
}
public void StopRecording()
{
isRecording = false;
}
public void RecordAction(Action action)
{
if (isRecording)
{
recordedActions.Add(action);
}
}
public void PlaybackMacro()
{
foreach (var action in recordedActions)
{
action.Invoke();
}
}
}
16.5 本章小结
本章介绍了ReoScript脚本引擎和宏功能。
📚 下一章预告
第十七章将学习性能优化与最佳实践。

浙公网安备 33010602011771号