预算、报价和计算表
业务应用让用户在熟悉的网格中编制预算、给出报价并核算成本。你的应用程序用数据填充工作表,用户修改数值和公式,结果立即重新计算。
- 211 个函数
- 已定义名称
- 冻结窗格
在你自己的应用程序中为用户提供电子表格。sgcSpreadsheet 像 Excel 一样输入数值和公式,用会自动溢出的动态数组计算 211 个工作表函数,保留带已定义名称和冻结窗格的多个工作表,由单元格区域生成图表,并加载和保存 Excel 能打开的 XLSX 文件。它构建在 sgcGrid 和与 sgcUICore 共享的公式引擎之上,适用于 VCL、FireMonkey、WinForms、WPF 和 Avalonia。
按用户在 Excel 中所期望的方式进行计算的公式引擎。
公式
处理数字的用户习惯用 Excel 公式思考。sgcSpreadsheet 能理解这些公式:以 = 开头的文本就是公式,引擎会计算 211 个工作表函数,从 SUM 和 AVERAGE 到 XLOOKUP、TEXT 以及各种日期函数。同一个引擎位于 sgcUICore 中,因此 sgcGrid 的公式会得到相同的结果。
=Sheet2!A1 或 =SUM('Sales 2026'!B:B)公式
=SORT(A2:A20) 这样的公式会返回整个列表,并且该列表会像在 Excel 中一样溢出到其下方的单元格。依赖关系图知道哪些单元格读取了哪些单元格,因此一次更改只会重新计算依赖它的单元格,在大型工作表中也是如此。
#SPILL!,并支持对溢出区域的 A1# 引用多个工作表、冻结窗格,以及 Excel 能读取的文件格式。
工作簿和文件
电子表格是包含一个或多个工作表的工作簿。网格下方的标签页用于切换工作表,+ 标签页用于添加工作表。重命名工作表时,引用它的所有公式也会同步更新。冻结窗格可在工作表其余部分滚动时,让标题行和标题列保持在原位。
AddSheet、ActiveSheet 和 SheetCountFreezePanes 和 UnfreezePanes 冻结标题行和标题列'007 仍是文本TsgcVCLSpreadsheetFormulaBar 和 TsgcFMXSpreadsheetFormulaBar工作簿和文件
工作簿来自 Excel,也可回到 Excel。LoadFromXLSX 读取工作簿的每个工作表,SaveToXLSX 写入每个工作表,因此文件可以在你的应用程序和 Excel 之间往返。
浮在工作表上方并随其数值变化的图表。
图表
图表显示一个单元格区域的数值。它像 Excel 中的图表一样浮在工作表上方,由 sgcCharts 绘制。当区域中的某个单元格发生变化,或区域中的公式得出新值时,图表会重新生成。用户可用鼠标移动图表并调整其大小。
AddChart 接受 'A1:D10' 或 'Sheet1!A1:D10' 这样的区域TsgcSpreadsheetCharts,图表保存到 XLSX业务应用让用户在熟悉的网格中编制预算、给出报价并核算成本。你的应用程序用数据填充工作表,用户修改数值和公式,结果立即重新计算。
客户发来 XLSX 文件,也期望收到 XLSX 文件。sgcSpreadsheet 会加载包含工作表、公式和图表的工作簿,让用户在你的应用程序中处理它,并保存为 Excel 能打开的文件。
工程、金融和实验室应用需要自己的计算。在代码中注册 MARKUP 或 TAX 这样的函数,用户就可以像使用内置函数一样在公式中调用它。
写入数值和公式,溢出动态数组,冻结标题行,添加图表,并将工作簿保存为 XLSX。
sgcVCLSpreadsheet1 是窗体上的一个 TsgcVCLSpreadsheet。图表类型和枚举在 sgcSpreadsheet_Charts 中声明。
uses
sgcSpreadsheet_Charts, sgcSpreadsheet_VCL;
procedure TForm1.BuildBudget;
var
oChart: TsgcSpreadsheetChart;
begin
// 行和列从 0 开始:(0, 0) 是 A1
sgcVCLSpreadsheet1.SetCellInput(0, 0, 'Month');
sgcVCLSpreadsheet1.SetCellInput(0, 1, 'Revenue');
sgcVCLSpreadsheet1.SetCellInput(1, 0, 'Jan');
sgcVCLSpreadsheet1.SetCellInput(1, 1, '42000');
sgcVCLSpreadsheet1.SetCellInput(2, 0, 'Feb');
sgcVCLSpreadsheet1.SetCellInput(2, 1, '45500');
sgcVCLSpreadsheet1.SetCellInput(3, 0, 'Total');
sgcVCLSpreadsheet1.SetCellInput(3, 1, '=SUM(B2:B3)');
// 动态数组:排序后的收入溢出到 D1:D2
sgcVCLSpreadsheet1.SetCellInput(0, 3, '=SORT(B2:B3,1,-1)');
// 工作表滚动时保持标题行可见
sgcVCLSpreadsheet1.FreezePanes(1, 0);
// 该区域的柱形图,由 sgcCharts 绘制
oChart := sgcVCLSpreadsheet1.AddChart(sctColumn, 'A1:B3');
oChart.Title := 'Revenue';
oChart.Legend := sclRight;
sgcVCLSpreadsheet1.SaveToXLSX('budget.xlsx');
end;.NET 控件使用相同的名称。sheet 是一个 TsgcWinFormsSpreadsheet,WPF 和 Avalonia 控件的用法相同。
using esegece.sgcSpreadsheet;
// 行和列从 0 开始:(0, 0) 是 A1
sheet.SetCellInput(0, 0, "Month");
sheet.SetCellInput(0, 1, "Revenue");
sheet.SetCellInput(1, 0, "Jan");
sheet.SetCellInput(1, 1, "42000");
sheet.SetCellInput(2, 0, "Feb");
sheet.SetCellInput(2, 1, "45500");
sheet.SetCellInput(3, 0, "Total");
sheet.SetCellInput(3, 1, "=SUM(B2:B3)");
// 动态数组:排序后的收入溢出到 D1:D2
sheet.SetCellInput(0, 3, "=SORT(B2:B3,1,-1)");
// 工作表滚动时保持标题行可见
sheet.FreezePanes(1, 0);
// 该区域的柱形图,由 sgcCharts 绘制
TsgcSpreadsheetChart chart = sheet.AddChart(TsgcSpreadsheetChartType.sctColumn, "A1:B3");
chart.Title = "Revenue";
chart.Legend = TsgcSpreadsheetChartLegend.sclRight;
sheet.SaveToXLSX("budget.xlsx");演示项目随适用于 Delphi 的 sgcUI 试用版一同安装。.NET 演示随 Registered .NET 下载包提供。
用代码构建的销售工作簿,使用 SUM、AVERAGE、IF 和 XLOOKUP,并带有读取它的汇总工作表、冻结的标题行、公式栏,以及 XLSX 的打开和保存。
数学、文本、日期和时间、查找以及动态数组函数,每个类别一个工作表,每个公式旁边都显示其结果。
由单元格区域生成的柱形图、折线图和饼图。修改收入或成本,图表随之变化。
由应用程序注册并用于公式的函数,以及在 FireMonkey 上使用 TsgcFMXSpreadsheet 的 Basic 和 Charts 演示。Basic 和 Charts 也提供 C++ Builder 工程。
适用于 WinForms 的 SpreadsheetBasic,以及 SpreadsheetBasicWpf、SpreadsheetBasicAvalonia、SpreadsheetFunctions、SpreadsheetCharts 和 SpreadsheetCustomFunction。
sgcSpreadsheet 可单独购买,分别适用于 Delphi 和 C++ Builder 以及 .NET,同时也包含在 sgcUI Enterprise 和 All-Access 套件中。没有免费的 Community 版本。
€299 / 开发者,WinForms、WPF 和 Avalonia 控件,以 Registered NuGet 包提供。
购买 sgcSpreadsheet .NET →TsgcVCLSpreadsheet 及其公式栏 TsgcVCLSpreadsheetFormulaBar。
TsgcFMXSpreadsheet 及其公式栏 TsgcFMXSpreadsheetFormulaBar。
TsgcWinFormsSpreadsheet、TsgcWpfSpreadsheet 和 TsgcAvaloniaSpreadsheet,均带公式栏。
TsgcSpreadsheetCharts,每个工作表的图表,由 sgcCharts 绘制。
| 目标 | 组件 | 版本和平台 |
|---|---|---|
| Delphi 7 至 13 | TsgcVCLSpreadsheet 和 TsgcVCLSpreadsheetFormulaBar | Windows |
| C++ Builder 2007 至 13 | 相同的类 | 生成的 .hpp 头文件和静态库 |
| FireMonkey | TsgcFMXSpreadsheet 和 TsgcFMXSpreadsheetFormulaBar | Delphi XE6 及更高版本 |
| .NET 核心库 | esegece.sgcSpreadsheet | .NET Standard 2.0、.NET Framework 4.7.2、.NET 6、8、9 和 10 |
| WinForms 和 WPF | TsgcWinFormsSpreadsheet、TsgcWpfSpreadsheet | Windows 上的 .NET Framework 4.7.2、.NET 8、9 和 10 |
| Avalonia | TsgcAvaloniaSpreadsheet | .NET 8、9 和 10 |
可以。LoadFromXLSX 会读取 XLSX 工作簿的每个工作表,包括其公式、格式、已定义名称、动态数组、列宽、冻结窗格和图表,SaveToXLSX 则写入 Excel 能打开的文件。
可以。公式引擎带有函数注册表。在 Delphi 和 C++ Builder 中,从单元的 initialization 部分调用 sgcCalcRegisterFunction,该函数就能像内置函数一样用于电子表格的每个公式。CustomFunction 演示展示了 Delphi 和 .NET 中的用法。
没有。sgcSpreadsheet 提供适用于 Delphi 和 C++ Builder 或 .NET 的单个包,也包含在 sgcUI Enterprise 和 All-Access 中。.NET 包仅限 Registered 用户,不在 nuget.org 上发布。请使用 sgcUI 试用版进行评估。
包含。每个 sgcSpreadsheet 许可证都包含完整源代码和 1 年更新。请参阅价格页面。
sgcUI 帮助:Delphi、C++ Builder 和 .NET.
Delphi、C++ Builder 和 .NET,涵盖所有 sgcUI 产品。