Spread .NET 表格控件 - 历史版本
Spread .NET 历史版本
V17.0
新增Ribbon工具栏组件
Spread Ribbon 工具栏组件 是 Spread.NET 的新增功能,允许您将 Designer 工具栏插入应用程序中与 Spread.NET 一起使用。这包括 Ribbon 选项卡、按钮、菜单和错误处理。您只需创建 Spread Ribbon 工具栏组件实例并将其附加到 FpSpread 实例即可:
ribbonBar1.Attach(fpSpread1);
您还可以使用 CommandExecuting 和 CommandExecuted 事件覆盖内置命令,并使用 ExecuteCommand 方法手动执行命令。
工作簿增强功能
页眉和页脚文本换行
新此版本中,Spread.NET 提供了 WrapText2 属性来给为列标题和列脚设置文本换行。
打印增强功能
Spread.NET 的打印功能已更新,增加了更多功能。包括:
- 不同的页眉/页脚打印:选择如何打印页眉和页脚,例如仅打印第一页或奇数页和偶数页。
- 导出打印页眉/页脚图像:可以导出包含图像的页眉和页脚。如果有多张图像,则仅导出第一张图像。
- 逐份/不逐份打印选项:这个新选项允许用户选择是将页面整套打印还是每页打印多份。
- Excel打印行为兼容:现在可以更改打印行为像 Excel 一样,因此如果将其设置为 true,打印结果将类似于 Excel,但与旧版本的 Spread.NET 不同。虽然所有行为不会与 Excel 完全相同,但我们正在继续更改和添加行为,使其更像 Excel。如果此选项为 true,也不支持打印为 PDF。
保存为 HTML
由于 .NET 和 .NET Core 已更新,无法再使用 SheetView.SaveHtml 方法将数据保存到 HTML。作为替代,现在可以通过 IWorksheet.SaveAs 和 IWorkbook.SaveAs 方法支持此功能。这些方法允许您以 HTML 格式保存工作簿或工作表。这仅限于单元格数据。
内置主题
Spread.NET 现在支持类似于 Excel 的内置主题。这些可用于更改工作表的外观,包括颜色和字体。除了保存、编辑和删除主题的自定义颜色和字体之外,您还可以自定义主题。
Office 365 默认主题 2023
新版本中添加了 Office 365 风格的新默认主题,以在您的应用程序中保持相同的外观。
自定义文档属性
Spread.NET 现在支持设置自定义文档属性,包括设置名称、类型和值属性。
获取单元格区域的最后一行/列
新的 IRange.End 方法允许您获取包含此单元格区域的末尾行列单元格的 IRange 对象。这对于确定设置数据的最后一行或最后一列很有用。
添加 ColumnDragMoveCompleting/RowDragMoveCompleting 事件
当用户通过拖动完成行或列的移动时,将触发 ColumnDragMoveCompleting 和 RowDragMoveCompleting 事件。
隐藏溢出动态数组的边界
使用动态数组时,指示器将显示它将溢出的位置。使用 DynamicArrayRenderer 属性,您可以选择隐藏此指示器。
粘贴选项增强
当 RichClipboard 选项设置为 True 时,用户可以选择各种粘贴类型,包括:
转到第一个/最后一个工作表
按住 Ctrl 键单击选项卡条的下一个和上一个按钮现在将分别导航到最后一个或第一个工作表。
IWorksheets 添加复制方法
IWorksheets 接口添加了 Copy 方法,用于复制一个单元格的目标/引用工作表以及在复制的工作表中创建引用状态。
使用鼠标滚轮左右滚动
Spread.NET 现在支持使用 Shift+Ctrl+鼠标滚轮在工作表中水平滚动。
公式计算增强
添加 EVALUATE 公式
Spread.NET 中添加了 EVALUATE 方法。此公式允许您将文本方程作为代数方程进行计算。该方法只能在命名范围内使用。
IRange.HasSpill API
Spread.NET 现在包含了一个 IRange.HasSpill API,类似于 Excel。此 API 有助于确定单元格区域是否包含溢出值。
图表增强功能
多级别分类标签
图表标签现在支持多行或多列,这有助于图表组织和可读性。
图表工作表
图表工作表是 Spread.NET 中的一种新型工作表,它只包含图表而没有其他内容。仅当 EnhancedShapeEngine 属性设置为 true 时,此功能才可用。这可以通过 API 以及右键单击工作表选项卡来实现:
在图表中嵌入形状
图表现在支持在其中嵌入形状。您可以在图表中插入一个形状,该形状可以正常交互,但受图表边界的限制。
形状增强
曲线形状
现在可以用曲线段绘制形状。这些可以通过代码或功能区栏完成。手动绘制它们时,通过移动并单击鼠标,然后双击、按 Enter/Esc 或单击起点来完成形状来添加它们。
在单元格中插入图片
Spread.NET 中的图片现在可以插入到单元格内。这是通过“粘贴选项”上下文菜单中的“在单元格中粘贴图片”(当 RichClipboard 设置为 true 时)和功能区栏中的“在单元格中插入图片”来支持的。
形状中支持垂直文本
只要将 EnhancedShapeEngine 属性设置为 true,形状现在就支持正确设置垂直文本。通过 TextOrientation.HorizontalRotatedFarEast 来完成设置。
支持.NET 8
Spread.NET V17 版本提供 .NET 8 支持。
快捷键
Spread.NET 已经支持了很多与 Excel 兼容的快捷键,在 V17 版本中,我们添加了对更多快捷键的支持,包括:
- Ctrl + - :删除单元格
- Ctrl + F3:显示名称管理对话框
- Shift + F9 :计算活动工作表
- F9:计算整个工作簿
- Ctrl + Shift + T :显示/隐藏表格的总行
- Ctrl + T :创建表
- Ctrl + U :将文本格式设置为下划线
- Ctrl + I :将文本格式设置为斜体
- Ctrl + B:将文本格式设置为粗体
- Ctrl + Shift + % :将文本格式设置为百分比
- Ctrl + Shift + V:粘贴纯文本或粘贴值
- Alt + Shift + 右箭头:创建轮廓组
- Alt + Shift + 向左箭头:取消分组
性能改进
Spread.NET V17 版本还解决了一些性能问题,包括:
- 使用箭头键移动焦点时出现滞后
- 设置公式/值后计算单元格
- 将 500 行溢出到 400 列后重新计算
- 从旧版本升级的问题
- 指数公式参考
- 动态阵列优化
V16.0
格式、样式和数据输入
富文本编辑
允许用户在编辑时直接在单元格中输入具有多种文本颜色和字体样式的富文本。
支持复制/粘贴 多区域以及使用“单元格格式”对话框设置多范围样式
支持跨列居中
这样不需要合并单元格,允许最终用户更灵活地选择单元格。
Threaded Comments线程化批注
可以为单元格添加Threaded Comments,或者为已经创建的 Threaded Comments添加回复。不同于原有的注释功能,线程化批注。
允许用户通过填充效果对话框给注释使用渐变填充效果
图片效果
设置列页脚单元格的数字格式
设置冻结线宽度
为冻结和非冻结区域之间的线设置宽度。
新的公式支持
14 个新的文本和数组公式
- 1、CHOOSECOLS :该函数从数组中返回指定的列
- 2、CHOOSEROWS:该函数从数组中返回指定的行
- 3、EXPAND:此函数将数组扩展或填充到指定的行和列维度
- 4、HSTACK:该函数水平并按顺序附加数组以返回更大的数组
- 5、TAKE:该函数从数组的开头或结尾返回指定数量的连续行或列
- 6、TEXTAFTER:此函数返回出现在给定字符或字符串之后的文本
- 7、TEXTBEFORE:此函数返回出现在给定字符或字符串之前的文本
- 8、TEXTSPLIT:此函数使用列和行分隔符拆分文本字符串
- 9、TOCOL:此函数在单列中返回数组
- 10、TOROW:该函数在单行中返回数组
- 11、VSTACK:该函数垂直并按顺序附加数组以返回更大的数组
- 12、WRAPCOLS:此函数在指定数量的元素之后按列包装提供的行或列值,以形成新数组
- 13、WRAPROWS:此函数在指定数量的元素之后按行包装提供的行或列值,以形成新数组
4 个新的预测公式(使用指数三次平滑 ETS)
- 1、FORECAST.ETS:此函数使用 AAA 版本的指数三重平滑 (ETS) 算法,根据现有值计算或预测未来值
- 2、FORECAST.ETS.CONFINT:此函数返回指定目标日期的预测值的置信区间。使用置信区间可以帮助掌握预测模型的准确性。较小的间隔意味着对该特定点的预测更有信心
- 3、FORECAST.ETS.SEASONALITY:此函数返回应用程序检测到的指定时间序列的重复模式的长度
- 4、FORECAST.ETS.STAT:此函数返回一个统计值作为时间序列预测的结果。统计类型指示此函数请求的统计信息
新的图像公式
Spread现在支持新的 Excel IMAGE 公式(IMAGE Sparkline 公式重命名为GC.IMAGE)
新的内置对话框
Spread现在为最终用户支持许多新的内置对话框:
插入函数对话框
可以在活动单元格中插入公式函数及其参数,或使用ToggleInsertFunction来显示对话框。
工作表保护选项
锁定工作表以指定允许用户使用保护工作表对话框或保护方法执行哪些操作。
Forecast Sheet
使用新的FORECAST.ETS和相关函数可以创建一个新表来预测未来值,或者使用Forecast Sheet 对话框来创建预测表。
Goal Seek
使用新的Goal Seek 对话框或Goal Seek方法来执行高级假设分析。
Table数据表对话框
用可以使用新的数据表对话框或DataTable方法在一系列单元格中添加计算数据表。
删除重复项
用户可以使用“删除重复项”对话框或RemoveDuplicates方法删除选定范围内的重复项。
Text-To-Columns
用户可以Text-To-Columns 对话框或TextToColumns 方法在目标范围内的列中拆分一系列单元格中的分隔文本。
V15.0 Update1
与微软提供完全相同的 .NET Framework 框架支持
微软在此前发布的博客文章中宣布将于 2022 年 4 月 26 日 结束对 .NET 4.5.2 的长期支持,为此 Spread .NET 表格控件现在都将使用 .NET 4.6.2 作为基线 .NET Framework 框架。
为 GrapeCity.Spread.WinForms.Design 引入了新的 NuGet包
Spread .NET 引入了一个全新的 NuGet包 GrapeCity.Spread.WinForms.Design,其中包含 Spread Designer 运行时组件 以及关联的对话框和其他用户界面元素。当您想要显示 Spread Designer的相关对话框(例如 Border Editor Dialog)或在应用程序内的运行时显示 Spread Designer 时,可以引用此包。
为 Spread 设计器设计全新的单元格样式 UI
Spread 设计器现在支持使用新的样式面板和 Ribbon 功能区栏中的下拉菜单来设置内置主题样式。所有标准 Excel 内置样式均可用,并且可以轻松创建和重复使用自定义样式。
使用“+”和“-”输入公式
Spread .NET 在输入单元格公式时不再需要以 “=” 开头,还可以识别以 “+” 和 “-” 开头的公式。当 AllowUserFormulas 为 true时,Spread .NET 便能识别“+” 和 “-” 开头的计算公式。
裁剪图片
Spread .NET 支持使用 ICrop 接口来裁剪图片,并指定偏移坐标和裁剪宽度、高度。这个增强功能可以更轻松地准确获取您想要显示的图像部分。
自动数字格式
Spread .NET 为有关数字的默认常规格式引入了新的增强行为。数字会被格式化为它们最初在单元格中键入时一样并显示,但如果完整值无法放入单元格中,则显示的值可能会被四舍五入,或者单元格甚至可能显示“##...#”表示该值不适合。Spread .NET 新的数字格式包括:
- 小数样式:如果数字长于 11 个字符(包括小数位),则小数会四舍五入以显示最多 11 个字符,例如,123456.7891234 四舍五入为 123456.7891
- 无小数样式:如果数字超过 11 个字符且没有小数,则将数字更改为科学格式,例如,123451234512 四舍五入为 1.23451E+11
7. 内联单元格图像
Spread .NET 的这项功能使开发人员或最终用户无需使用 ImageCellType 即可直接在工作表中加载和显示内联单元格图像。Image 对象可以直接设置到单元格中, 也可以使用 CellImageAttribute 在自定义数据类型 中使用 IRichValue 指定 Image 属性 ,这样可以同时显示单元格中的图像和值。
格式化数字单元格值
Spread .NET 的这项功能将指定的格式字符串与单元格值相关联,并允许格式字符串在公式中使用时跟随值。格式字符串可以是数字或日期时间格式。当公式引用单元格时,如果该单元格尚未应用单元格格式,它将自动选择要在公式单元格中应用的格式。
Spread .NET增加了与 Excel 兼容的键盘快捷键:Ctrl+PgUp 和 Ctrl+PgDn
使用 FpSpread.Features.ExcelCompatibleKeyboardShortcuts = true 启用此功能,这将更新键映射以自动支持最常见的 Excel 键盘快捷键。
V15.0
支持 .NET 6.0,可通过 Nuget 获取
使用 Microsoft Visual Studio 中的 NuGet 包管理器,便可以轻松地在 .NET 6、.NET 5、.NET Core 3.1 和 .NET Framework 4.5.2 的项目中添加 Spread .NET 控件,在支持 .NET 5.0 和 .NET 6.0 的开发界面中,也可以直接从工具栏中拖入 Spread 控件。
(使用 NuGet 包管理器添加 GrapeCity.Spread.WinForms V15.0)
新增 17 个迷你图视觉效果组件
本次新增的迷你图效果组件可以使用公式或 Spread 设计器直接在单元格中创建数据图表。
这些迷你图包括:面积图、箱线图、子弹图、级联图、仪表 KPI 图、HBar、直方图、图像、月历、帕累托图、饼图、散点图、传播、堆叠图、变量图、VBar 和年历。
(Spread .NET控件的迷你图面板)
(级联迷你图公式示例)
新增 LAMBDA 函数,用户可以使用公式创建自定义函数
Spread .NET V15.0 中新增的 LAMBDA 函数将允许用户使用自定义名称和公式创建新的自定义函数,且这些新函数的操作类似于动态数组,可将返回数组结果溢出到相邻单元格。 在 Spread .NET 中,您可以直接复制或粘贴这些函数的公式以在任何工作簿中定义它们,并且像内置函数一样在公式中使用它们。
(LAMBDA 函数示例)
新增 7 个 LAMBDA 辅助函数和相关功能增强
为了更易创建 LAMBDA 公式,Spread .NET V15.0 加入了七个全新的 LAMBDA 辅助函数,即 BYCOL、BYROW、ISOMITTED、MAKEARRAY、MAP、REDUCE 和 SCAN。
在使用通用的公式语法很难创建公式时,这些新的辅助函数可以让用户轻松的创建 LAMBDA 公式。
(LAMBDA 辅助函数示例)
除了上述 7 个辅助函数外,其他一些增强项包括:
- 在公式中保留空格:由于创建 LAMBDA 函数需要更长、更复杂的公式表达式,因此在公式中保留空格可使其更具可读性和清晰易懂性。
- 名称管理器对话框增强功能:名称管理器对话框允许调整和扩展文本框的大小,以便轻松查看和编辑 LAMBDA 函数所需的复杂多行公式。
- 名称支持双字节字符:现在支持使用双字节字符来自定义名称。
相机形状增强,支持自由形状和自由涂鸦
Spread .NET 中的自由涂鸦工具允许用户像在 Excel 中一样,快速且轻松地打开或关闭自定义形状。
(Spread设计器中的自由形状和自由涂鸦)
数据绑定增强,可将任何 .NET 数据源绑定到表格中
Spread .NET V15.0 中的数据绑定增强功能可将任何 .NET 数据源绑定到表格中,且绑定方式支持双向绑定,即数据更改后会同步刷新数据源的值。
(表格绑定增强示例)
支持多种富文本导入
Spread .NET V15.0 在导入 XLSX 文件时支持富文本导入,如多种字体、文本样式、颜色、上标、下标等。
(带有下标、上标等的富文本导入)
使用 FpSpread.Features.RichText 函数可以轻松启用 Spread.NET V15.0 中的富文本导入功能。
增强的边框渲染和打印支持
(导入的 XLSX 的增强边框渲染)
使用 FpSpread.BorderCollapse = BorderCollapse.Enhanced 可以轻松启用 Spread .NET V15.0 中的增强边框渲染,以允许导入包含复杂合并单元格的 XLSX 文件,这些单元格边框的类型和宽度与 Excel 完全相同。
使用默认的平面样式(例如,未使用 LegacyBehaViors.Style)时,Spread .NET V15.0 中的打印支持也得到了增强,可以支持打印所有的单元格样式,包括渐变填充、会计格式等。
增强条件格式对话框
(增强的条件格式对话框)
Spread .NET V15.0 中的增强条件格式对话框支持复制规则按钮和调整对话框大小,从而更容易管理工作表中的条件格式。此对话框可以在运行时调用 API ConditionalFormattingUtils.ShowConditionalFormattingManagerForm 显示。
可插入剪切/复制的单元格
Spread .NET 的插入剪切/复制单元功能可以通过 FpSpread.Features.RichClipboard 启用。使用该功能的优势是:在复制或剪切范围的周围显示动画虚线边框; 包含“插入复制单元格”或“插入剪切单元格”的新上下文菜单项,以及用于插入行或列的增强型插入对话框。
(插入剪切/复制的单元格)
其他新增功能
增强 Excel 键盘快捷键和操作兼容性
在Spread .NET中,使用 FpSpread.Features.ExcelCompatibleKeyboardShortcuts即可启用新增的 Excel 兼容键盘快捷键,包括 CTRL + A 以选择表格单元格、表格范围、工作表或相邻的非空单元格。
(增强的Excel 兼容键盘快捷键)
ComboBoxCellType可以作为数据验证导出到Excel
使用 Spread .NET 的 ExcelSaVeFlags.ComboAsDataValidation 函数可将 ComboBoxCellType 作为数据验证列表导出到 XLSX 文件中,使用 ExcelOpenFlags.DataValidationAsCombo 可将 XLSX 文件中的数据验证列表导入为 ComboBoxCellType。
(导出 ComboBoxCellType 作为数据验证)
图像单元格类型使用文件路径显示图像
对于图片单元格类型,Spread .NET允许通过将单元格中的值设置为图像的文件路径来自动加载图像。重复图像会自动缓存并跨单元重用,以优化具有许多图像的用例。
(ImageCellType 使用图片文件路径)
新增 26 个 VSTO 风格的 API
Spread .NET V15.0 为 IRange 和 IWorksheet 提供了 26 个全新的 VSTO 风格 API:
- IRange.AutoFill – 将范围自动填充到指定的目标范围
- IRange.HasRichDataType – 如果范围包含富文本数据类型对象,则返回 true
- IRange.Resize – 调整范围尺寸
- IRange.Width –返回范围的宽度
- IRange.Top -返回范围相对于工作表顶部的顶部坐标
- IRange.Height –范围的高度
- IRange.Left –返回范围相对于工作表左侧的左侧坐标
- IRange.UseStandardWidth – 设置或返回范围内的列是否使用标准宽度
- IRange.UseStandardHeight – 设置或返回范围内的行是否为标准高度
- IRange.ShowCard – 显示范围内富单元格数据类型对象的数据卡
- IRange.Show – 滚动工作表以显示指定的单元格(IRange 必须是一个单元格)
- IRange.Next – 模拟 TAB 键导航到下一个可编辑单元格
- IRange.PreVious – 模拟 SHIFT + TAB 键导航到上一个可编辑单元格
- IRange.FillDown – 使用顶部单元格中的值向下填充范围
- IRange.FillLeft – 使用右侧单元格中的值填充左侧范围
- IRange.FillRight – 使用左侧单元格中的值填充右侧区域
- IRange.FillUp – 使用底部单元格中的值向上填充范围
- IRange.Dirty – 指定范围内的单元格要在下一个计算周期重新计算
- IRange.BorderAround – 在范围内的单元格周围设置指定的边框(轮廓边框)
- IRange.Characters – 获取将格式应用于部分单元格值的字符
- IRange.SpecialCells – 获取指定类型范围内的单元格
- IWorksheet.UsedRange – 返回工作表中包含值的范围
- IWorksheet.StandardWidth – 设置或返回工作表中的标准列宽
- IWorksheet.StandardHeight – 设置或返回工作表中的标准行高
- IWorksheet.Next – 模拟 TAB 键导航到下一个可编辑单元格
- IWorksheet.PreVious – 模拟 SHIFT + TAB 键导航到上一个可编辑单元格
V14.0 Update1
新增事件函数,用于重新计算引用单元格的值
新增的事件函数可以使开发人员按需控制计算结果,并对引用单元格的值重新计算。
以下是具体使用方法:将 CalculationOnDemandMode 设置为 CalculationOnDemandMode.Off,可强制相关的单元格立即重新计算,并同步触发每个单元格的 CellValueChanged 事件。
查找和匹配功能的性能改进
本次发布,Spread .NET 新增了一个 API(CalculationEngine.CacheOptions),用于优化查找和匹配函数的性能。使用这个 API,可以优化 LOOKUP、HLOOKUP、VLOOKUP、XLOOKUP、MATCH 和 XMATCH 等工作簿中的查找匹配功能。
注意:要启用这个 API,请将 CalculationEngine.CacheOptions 设置为 CacheOptions.On 或 CacheOptions.Aggressive。
新增函数:VALUETOTEXT 和 ARRAYTOTEXT
本次发布,Spread .NET 引入的一些新的计算函数来匹配 Excel 公式 VALUETOTEXT 和 ARRAYTOTEXT 。这些函数的操作方式与 Excel 中的操作完全一致。
新增API:GetFullDependents 和 GetFullPrecedents
本次发布,Spread .NET 引入了新的 API IRange.GetFullDependents 和 IRange.GetFullPrecedents,可返回所有引用单元格,包括跨工作簿和外部引用。由于这两个 API 与 VSTO的 API 功能高度类似,因此 IRange.GetDependents 和 IRange.GetPrecedents 可以在 Excel 的工作表中运行。
饼图新增百分比标签
本次发布,使用 Spread .NET 可以像在 Excel 中一样启用在饼图中设置百分比标签的功能。
使用方法:创建饼图并为该系列添加数据标签后,可以使用“设置数据标签格式...”为饼图切片标签指定百分比类型,如下所示:
(将饼图数据标签格式转化为百分比)
支持通过选项卡上下文菜单隐藏/取消隐藏工作表
此功能可以在 Spread Designer 工具中隐藏和取消隐藏工作表。如今,用户即可以使用 PropertyGrid 来隐藏工作表、设置工作表的 Visible 属性,还可以选择在“ Spread Designer 首选项”中指定是否显示隐藏的工作表:
(Spread Designer首选项中的“显示隐藏的工作表”选项)
当此选项为 false 时,新的“隐藏和取消隐藏...”上下文菜单选项将出现在工作表选项卡的上下文菜单中:
(工作表选项卡上下文菜单中的“隐藏/取消隐藏”项)
按设定像素的数量实现像素级滚动
本次发布,使用 Spread .NET 可以将垂直滚动条设置为使用鼠标滚轮以特定数量的像素为增量滚动。
使用方法:VerticalScrollBarMode.PixelEnhanced API 启用此行为,使用属性 VerticalScrollBarSmallChange 的值确定要滚动的像素数量。
V14.0
支持 .NET 5 和 .NET Core 3.1
Spread .NET V14.0 提供了一个用于 .NET 5 和 .NET Core 3.1 WinForms 开发环境的 NuGet 程序包。
使用这个新程序包,就可以在 .NET 5 和 .NET Core 3.1 中使用 Spread 表格控件创建 WinForms 应用程序,并使用 GrapeCity Spread .NET 控件移植现有的 WinForms 项目。
单元格类型增强,可以将 .NET 对象作为自定义单元格类型
单元格类型增强是 Spread .NET 14.0 中的一项主要更新。
借助这一更新,你可以通过自定义数据类,来创建自定义单元格类型,然后使用该类创建对象并将其设置为单元格的值。该对象将使用自定义图像显示在单元格中,并显示该对象的默认属性。
另外,当该单元格处于活动状态时,“插入数据”工具将显示在该单元格旁边(请参见上图的 B12 单元格)。单击“插入数据”工具后,将显示一个弹出列表,列出可在相邻单元格或列中插入的可用数据字段:
单击弹出列表中的字段将自动插入适当的公式,您也可以单击单元格中的标志符号,或在单元格处于活动状态时按 Ctrl + Shift + F5 来显示对象的数据卡片:
要创建这些数据类型,可以为单元格数据类型先定义类,并指定要显示的属性,然后创建这个类的对象实例,并创建 RichValue
当然,你也可以直接在单元格数据类型类上实现 IRichValue 并通过接口指定字段(上面示例中的 Vehicle 类就是通过这种方式实现的)。
为了加速创建单元格的自定义数据类型,Spread .NET 实现了内置的类 BuiltInRichValue,可用于将 DataView 或 DataTable 包装在单元格数据类型内,如下图所示:
超链接功能增强
Spread .NET 14.0 增强了超链接功能,包括:
- 链接到单元格引用
- 链接到命名范围
- 链接到tables
- 链接到电子邮件
- 链接到网站和文件
- 从单元格,形状和图像上来链接
- 自定义链接的提示文本
- 编辑单元格时自动创建链接
通过启用 AutoCreateHyperlink 功能,在 Spread .NET 中编辑单元格时可以自动创建超链接,包括使用特殊语法(例如“spread://Sheet1!A1”)指定工作簿内部链接的位置,该语法还支持命名范围(如“spread://SalesSummary”)和表格名(如“spread://Table1”)。
使用 Ctrl + K 调用 “编辑超链接”对话框,就可以修改链接目标,如要显示的文本和屏幕提示文本:
新增 LET 函数,优化计算效率
LET 函数允许您在公式中预定义名称,然后使用这些名称来计算表达式。
例如,一个简单的表达式“SUM(x, 1)”,其中 x 是一个命名参数,可向它赋值(在本例中,x 的赋值为 5)。
=LET(x, 5, SUM(x, 1))
将此公式输出到单元格后,它将返回值 6。
使用此函数,你不必记住特定范围或单元格引用的是什么,也不用关心一个计算做了什么,甚至不必再复制粘贴相同的表达式。
该函数通过消除多余的中间值来优化你的计算速度,中间值仅需计算一次,便可重复使用。
在上面的示例中,左侧的电子表格使用LET 函数来优化计算,其计算结果比不使用 LET 功能并执行相同计算的右侧电子表格快了三倍。
支持移动 Sharp 形状中的点来创建自定义形状
Spread .NET 的形状引擎支持导入和创建 Microsoft Excel 形状。
在新版本中,新增的“编辑点”命令使用户可以自定义形状中的点和线段。右键单击形状,可在上下文菜单中使用“编辑点”命令:
选择任何增强形状时,“编辑点”命令也可在Spread Designer功能区栏中的“编辑形状”菜单里找到:
在增强形状上使用“编辑点”时,可以单击并将“形状点”拖动到新位置,或者通过单击该点来选择要编辑的“形状点”,然后使用方向键移动该点。
选择“形状点”后,相邻线段的关联控制点显示为白框:
通过控制点可以修改选定形状点和相邻形状点之间的曲线。上图中在右上角选择的形状点是一个角点,因此控制点与形状点成直角。这些控制点可以独立移动,以修改相邻线段中的曲线。您可以使用鼠标将其拖放,也可以使用箭头键,单击并选择一个点。
右键单击该点可以查看 “形状点”的上下文菜单,该菜单可用于添加和删除形状点、打开和关闭路径以及在“平滑点”、“直线点”和“角点”之间切换所选点:
如上图,泪滴形状有五个点:左侧和底部有两个平滑点,顶部和右侧有两个直线点,右上角有一个角点。
更改形状点类型将重置曲线点,添加新点可以创建更复杂的形状。
快捷键组合:
- 通过 Ctrl 键+单击相应位置可以添加一个新的形状点
- Ctrl 键+点击形状点可以删除此形状点
- 移动一个控制点并按下 Shift 键键可将其改变为平滑点
- 按 Ctrl 键,可将形状点更改为直线点
- 按 Alt 键,可将形状点更改为角点
在调用“编辑点”命令后,“形状点”将显示在形状中的当前位置,当鼠标悬停在形状点上时,光标将变为十字状以示拖动点:
键盘快捷键增强,可为用户启用与 Excel 完全兼容的键盘快捷键
Spread .NET 14.0可为最终用户启用与 Microsoft Excel 完全兼容的键盘快捷键。
通过将FpSpread.Features.ExcelCompatibleKeyboardShortcuts设置为true,即可加载这些键盘映射,设置 FpSpread.Features.ExcelCompatibleKeyboardShortcuts = false 将删除这些键映射并恢复默认设置:
使用InputMap API创建自定义键映射,可为DisplayFormulas、ShowFormatCellsDialog、ShowCard、ShowHyperlinkDialog和EditMultipleCells这几个新的SpreadAction对象创建自定义快捷方式。
支持如 Excel 相同的多工作表选择功能
Spread .NET 支持像 Microsoft Excel 一样使用Ctrl + 单击工作表选项卡来选择多个工作表。
当多个工作表被选中时,用户可以拖放选定的工作表,并重新排列在工作簿中。如下所示,Sheet1和Sheet3都被移动到工作簿Sheet4之后:
在拖动选定的工作表时按Ctrl键,将复制这些工作表而不是将其移动:
可切换显示公式与计算结果
和 Microsoft Excel 一样,Spread .NET 支持按 Ctrl +` 来切换显示公式本身还是计算结果。
要启用此命令,必须在设计时或代码中将 FpSpread.Features.ExcelCompatibleKeyboardShortcuts 设置为 true,如下图所示:
默认显示计算结果:
点击显示公式:
V13.0
增强形状(Shape)引擎,与 Microsoft Excel® 100% 兼容
Spread .NET 在新版本中增强了形状引擎,该引擎与 Microsoft Excel® 100% 兼容,和此前的形状引擎相比,新引擎与 Excel 的兼容性更高,功能也更完善。
1. 新的形状引擎支持所有 Excel 形状:
(Spread支持所有Excel形状)
2. 新引擎支持多组形状组合,可用于创建图表、结构图和流程图:
(在Spread中创建的流程图示例)
3. 新的形状引擎可用于创建丰富的交互式界面,比如一个汽车保险索赔示例:
(使用 Spread 形状创建的汽车保险索赔示例)
要使用这个形状引擎,可以通过“属性网格”启用它:
(启用形状引擎)
也可以直接通过代码启用:
【C#】
fpSpread1.Features.EnhancedShapeEngine = true;
【VB】
fpSpread1.Features.EnhancedShapeEngine = True
增强形状(Shape)属性的绑定机制,以设计更多交互式形状
Spread .NET 形状属性的绑定机制在本次发布中得到增强,支持将 AutoShapeType、TextEffect、Fill、Line、Top、Left、Height 和 Width 等属性绑定到特定的单元格中,用来设计更为丰富的交互式界面。同时,利用单元格公式的计算结果,还可以动态更新这些属性。
举例:
在上面的汽车保险索赔示例中,各形状的详细属性在 Sheet2 中如下所示:
(塑造汽车保险索赔示例的属性绑定)
通过代码来绑定形状的属性:
【C#】
IWorkbook workbook = fpSpread1.AsWorkbook(); IShapes shapes = workbook.Worksheets[0].Shapes; // bind shape properties to cells shapes["Front"].Bindings.Add("Left", "Sheet2!B2"); shapes["Front"].Bindings.Add("Top", "Sheet2!C2"); shapes["Front"].Bindings.Add("Width", "Sheet2!D2"); shapes["Front"].Bindings.Add("Height", "Sheet2!E2"); shapes["Front"].Bindings.Add("Line", "Sheet2!F2");
【VB】
Dim workbook As IWorkbook = fpSpread1.AsWorkbook Dim shapes As IShapes = workbook.Worksheets(0).Shapes bind shape properties to cells shapes("Front").Bindings.Add("Left", "Sheet2!B2") shapes("Front").Bindings.Add("Top", "Sheet2!C2") shapes(Front").Bindings.Add("Width", "Sheet2!D2") shapes("Front").Bindings.Add("Height", "Sheet2!E2") shapes("Front").Bindings.Add("Line", "Sheet2!F2")
增强复制粘贴,确保与 Microsoft Excel® 的数据无缝衔接
Spread .NET 在新版本中的复制/粘贴功能得到了全面加强,确保与 Microsoft Excel® 的数据无缝衔接。
可通过如下控制面板,启用此功能:
(使用属性面板启用FpSpread.Features.RichClipboard)
或者,您也可以直接在代码中设置:
【C#】
fpSpread1.Features.RichClipboard = true;
【VB】
fpSpread1.Features.RichClipboard = True;
当启用复制粘贴的增强选项时,您可以享受如下功能:
- 向 Excel 复制 Spread 设计器中选定的范围和单元格(包括源格式、公式和值)
- 从 Excel 中粘贴 Shape、Picture、Slicer (包括格式、样式、效果和文本内容)到 Spread 设计器中
适用于表数据筛选的切片器
Spread .NET 新增了适用于表数据筛选的切片器。
您可以直接向 Spread 设计器导入、导出带有切片器的 Excel 文件,也可以直接在 Spread 设计器中插入切片器:
(Spread Designer中的插入切片器)
插入 Spread 切片器时弹出的对话框:
(插入切片器的对话框)
通过代码显示“ 插入切片器”的对话框:
【C#】
SlicerInsertForm dlg = new SlicerInsertForm(table, new Point(25, 25)); dlg.ShowDialog(this);
【VB】
Dim dlg As SlicerInsertForm = new SlicerInsertForm(table, new Point(25, 25)) dlg.ShowDialog(Me)
Spread切片器的作用与Excel相同,都是用来显示表列中的唯一值,并通过快速筛选整张表来定位该值所在的行:
(Spread为“国家/地区”表列创建的切片器)
用于自定义数据可视化的 VisualFunction
Spread .NET 在新版本中新增了一个名为 VisualFunction 的新型自定义计算功能。
使用这个功能,您可以定义一个自定义公式函数,用来在单元格中绘制内容或应用格式,使用此功能在单元格中绘制内容类似于创建迷你图,但比创建迷你图还要简单。
此功能与 Spread 新的计算引擎和新函数类的 VisualFunction 集成在了一起。
举例:
您可以自定义绘制 QR 代码的 VisualFunction:
(显示QR代码的VisualFunction)
在公式中引用 VisualFunction 时,需要在 VisualFunction 的名称前使用前缀“ VF. ” ,并传入参数。
如上面的示例中,VisualFunction QRCODE 接收了两个参数(B1,C1),因此将 B1 到 C1 单元格中 Spread .NET 的网址生成了一个标准 QR 码。
增强对 XLOOKUP 和 XMATCH 的函数支持
Spread .NET 增强了对 XLOOKUP 和 XMATCH 函数的支持,这些函数目前仅在 Microsoft Excel® 的 Office Insiders 版本中可用。
和旧的 LOOKUP、VLOOKUP、HLOOKUP 和 MATCH 相比,XLOOKUP 和 XMATCH 更好,原因如下:
- XLOOKUP 和 XMATCH 可以执行垂直或水平查找(或在嵌套时都执行),具体取决于 lookup_array 的方向。
- 即使没有对数据进行排序,XLOOKUP 和 XMATCH 仍可以执行具有正确结果的非精确查找(与 HLOOKUP / VLOOKUP / MATCH 不同)。
- XLOOKUP 和 XMATCH 默认执行精确匹配查找(与 LOOKUP / HLOOKUP / VLOOKUP / MATCH 不同)。
- XLOOKUP 不需要引用包含 _ lookup_array _ 和 _ return_array _ 的全部范围,仅需引用特定范围即可。因此就计算效率而言,XLOOKUP 可以比 HLOOKUP / VLOOKUP 更高效。
- 因为使用了范围引用,XLOOKUP 在插入、删除和移动 _ lookup_array _ 或_ return_array _ 的列、行时会自动调整。
- Spread .NET 中对 XLOOKUP 和 XMATCH 进行了增强,支持 _search_mode 0 - All_ (它用来返回数组中的所有匹配项,防止当启用动态数组时,这些项因为溢出到相邻的单元格中而没有被匹配到)。
从上面的最后一点可以看出,启用动态数组功能时,为了避免遗漏数据,需要借助 _ search_mode 0-All _ ,而只有 XLOOKUP 和 XMATCH 才能支持它。
(在Spread功能区中启用“动态数组”)
通过代码启用动态数组:
【C#】
pSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.DynamicArray;
【VB】
fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.DynamicArray
公式值自动格式化
Spread .NET 加入了公式值自动格式化的功能:
- 使公式函数的运算结果自动匹配当前的单元格样式(类似 Microsoft Excel)。
- 引用其他单元格时,将自动使用所引用单元格的样式。
- 此功能必须启用时才会生效(确保向后兼容)。
Spread .NET 提供的公式值自动格式化功能与 Excel 类似,如使用 DATE 函数计算日期时,计算结果将自动设置为日期格式。
Spread .NET 的公式值自动格式化,可以根据原始单元格格式自动格式化公式值。
举例:
在单元格 A1 中键入 1500.65,然后应用“ 货币”格式,则该单元格将显示为 $ 1500.65。此时,在单元格 A2 中键入公式“= A1”,则单元格 A2 的值也将显示为货币格式。
如果将单元格 A2 的“单元格格式”更改为会计专用,则单元格 A2 中的值将更新为 “ 会计专用格式”而不是“ 货币格式”。
此时,在单元格 B1 中键入公式“= A1”,然后将公式向下拖动到单元格 B2 中,则这两个单元格的格式均为货币类型,因为 B1、B2 单元格均引用自 A1,而 A1 的单元格格式为货币:
(根据引用单元格格式自动格式化公式值)
注:为了向后兼容,此功能默认未启用,使用时必须通过 IWorkbook.Features 来启用:
【C#】
IWorkbook.Features.AutoFormattingworkbook.Features.AutoFormatting = True
【VB】
IWorkbook.Features.AutoFormattingworkbook.Features.AutoFormatting = True
自动调整行标题的宽度
Spread .NET 可以动态调整行标题的大小,当您向下滚动表格时,该行标题会自动调整以显示完整的行号:
(向下滚动时自动调整行标题宽度)
此功能的应用场景是:在数据量非常大的电子表格中,用户向下滚动时可以查看完整的行索引号。
IWorksheet 中的 BackgroundImage
Spread .NET 现在使用新的重载方法 SetBackgroundPicture 在 IWorkbook 界面中为工作簿设置背景图像:
【C#】
void IWorksheet.SetBackgroundPicture(string filename, [string contentType = null]) void IWorksheet.SetBackgroundPicture(System.IO.Stream imageStream, string contentType)
【VB】
Sub SetBackgroundPicture(filename As String, Optional contentType As String = Nothing) Sub SetBackgroundPicture(imageStream As System.IO.Stream, contentType As String)
注:背景图片必须从文件或数据流中加载,并且指定的文件类型必须是:
- 图片/ jpeg
- 图片/ png
- 图片/ tiff
- 图片/ gif
- 图片/ Bmp
编辑公式会向表单元格数据插入结构化引用
(编辑公式将结构化引用插入到表格单元格中)
使用 Spread 中的 FormulaTextBox 控件编辑公式时,可以选择单元格、表格列或整个表格,并自动插入结构化引用。
注:这个功能可适用于整个表的列引用和整个表引用,但是对于使用 [@ColumnName] 语法的单元格引用,其引用的单元格必须与表单元格位于同一行中,如果表单元格在另一行中,则只能使用常规单元格引用。
新的 BeforeRightClick 事件
Spread .NET 提供了一个新事件 BeforeRightClick,该事件用于:最终用户右键单击电子表格内部时,可以通过事件、API 来自定义上下文菜单。
您可以在此事件中调用 API(如 FpSpread.HitTest)实现:定位光标下的单击位置和对象,覆盖默认行为,并自定义上下文菜单(包括样式、自定义功能),BeforeRightClick 事件为 Spread 设计器的右键单击操作,带来了更为个性化、更加灵活的功能。
为 WinForms 控件资源管理器中添加了新示例
Spread .NET 在本次更新中,加入了一些令人兴奋的新示例,这些示例可以在C#和VB中运行,并且他们已经包含在 Spread .NET 的安装程序中:
1. 汽车保险索赔示例
汽车保险索赔展示了:如何获取包含 VBA 代码和自定义形状的 Excel 工作簿(* .XLSM),并将其转换为 .NET WinForms 应用程序(Spread 设计器),该应用程序可以将新的命令(包含用户插入的 VBA 宏和其他修改项目)导出至 Excel 中。
2. 动态数组示例
该示例展示了:如何使用 Spread 的动态数组功能,以及使用动态数组的示例。您可以浏览到每个带有新公式函数 FILTER、RANDARRAY、SEQUENCE、SINGLE、SORT、SORTBY 和 UNIQUE 的工作表。
3. 公式跟踪示例
该示例展示:如何使用 Spread 新的 API 跟踪公式的源、从属单元格和引用单元格。
4. 自定义函数功能示例
该示例展示:如何实现返回数组或计算结果的自定义计算函数,该函数可与数组公式或新的动态数组功能(如果已通过 IWorkbookSet.CalculationEngine.CalcFeatures 启用)一起使用。
5. XLOOKUP 和 XMATCH 函数功能示例
该示例展示:如何使用新的 XLOOKUP 和 XMATCH 计算函数以及增强的 search_mode 0_ 来返回数组中的所有匹配项。
6. 自定义数据可视化示例
示例显示了如何创建一个新的 VisualFunction 在单元格内绘制 QR 码。
7. 切片器示例
显示了如何使用 Spread 切片器过滤工作表中的数据,以及如何设置切片器样式。
8. 形状引擎功能示例
显示了如何使用 Spread 的增强形状引擎创建流程图。
V12.0 Update2
WinForm平台功能优化
- 当为电子表格应用程序启用 DPI 感知时,图标将正确缩放。[273689]
- 使用自定义函数:AddCustomFunctions() 方法,在打开 Excel 文件后将正确重新计算。[269202]
- 用户可以将自定义排序逻辑应用于电子表格中。[273437]
- CellChanged 事件现在可以正常触发。[273963]
- 加载特定的 XML 文件和复制公式引用另一个工作表的单元格时,粘贴的值现在正确显示。具有公式的复制粘贴单元格现在工作正常。[274165]
- 编辑后在子视图中使用 RecalculateAll() 方法时,不会引发异常。[274182]
- 用户可以加载使用跨页 WinForms 10 保存的 XML 文件。[270695]
V12.0 Update1
动态数组支持:大幅简化计算公式,提高公式运算效率
Excel 2019 推出了动态数组函数,用于简化复杂计算公式:使用动态数组,返回值将自动“输出”到相邻单元格中(未使用的)。用户只需编写一个简单的公式,而不是编写复杂的数组公式就可解决多单元格问题。
(Excel 动态数组功能预览)
作为一款与 Excel 高度类似的表格控件,在 Spread .NET V12.1 中,也加入了如 Excel 动态数组一样的功能。
如何在 Spread .NET 中使用动态数组
首先,需要在 Spread 设计器中启用动态数组——默认情况下,动态数组不会自动启用,您需要通过以下方式之一显式启用它们:在Windows窗体的 Spread设计器(SpreadDesigner)中,有一个新的“公式”选项卡,如下图:
(如何在 Spread .NET 中使用动态数组)
在“计算引擎”菜单中选中“动态阵列”框,以启用对动态阵列的支持。
除此之外,您也可以使用代码(通过调用 CalculationFeatures 函数),启用动态数组:
【C#】
fpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.DynamicArray;
【VB】
FpSpread1.AsWorkbook().WorkbookSet.CalculationEngine.CalcFeatures = GrapeCity.Spreadsheet.CalcFeatures.DynamicArray
举例:键入类似“= {1,1,2,2,3}”的公式,该公式硬编码水平溢出的数组值如下图:
(水平阵列使用','分隔符水平溢出)
键入“= {1; 1; 2; 2; 3}}”这样的公式,它硬编码垂直溢出的数组值如下图:
(垂直数组使用';' 分隔符垂直溢出)
键入“= {1,1,2,1,3; 1,1,2,1,3; 1,2,3,2,5; 1,2,3,2,5; 1,2 ,2,2,5}“ 这样的公式,其硬编码水平和垂直溢出的二维数组值如下图:
(二维数组垂直和水平溢出)
在相邻空白单元格中放置值的行为称为“填充(Spilling)”,当选择溢出范围内的任何单元格时,Spread .NET 会用浅蓝色边框,指示公式的“填充范围”,并且FormulaTextBox将单元格公式显示为已禁用且不可编辑。
Spread .NET 动态数组的强大功能
Spread .NET 现在支持六种动态数组函数:
- SEQUENCE和RANDARRAY函数可以生成顺序或随机数据的数组
- FILTER、SORT、SORTBY 和 UNIQUE 函数主要用于筛选、排序、删除重复项等功能
使用动态数组,当您的数据发生变化时,设计器将自动调整大小并重新计算,让您的数据分析工作前所未有的简单。
Spread .NET 动态数组的使用场景
仅使用带有 RANDARRAY 的 SORTBY,即可为列表创建随机排序:
(使用SORTBY和RANDARRAY随机排序值列表)
仅使用 SEQUENCE 和 NOW 函数,实现每 10 分钟创建一个时间表计划标题:
(使用SEQUENCE安排每隔十分钟)
仅使用三个公式和 TRANSPOSE、SORT、UNIQUE 和 SUMIFS 函数,直接在单元格中创建数据透视交叉分析表:
(仅使用三个公式创建的数据透视交叉分析)
Spread .NET 设计器增强:公式追踪 & 动态数组公式选项卡
Spread .NET 设计器(Spread Designer) 中新增了 Formulas选项卡,包含全新的动态数组支持(默认情况下不启用)、定义名称、公式审计和用于计算的工具。
Spread .NET 设计器的公式追踪
在使用公式时,有时需要了解公式中引用了哪些单元格的数据,这就涉及到公式追踪的操作。在 Spread .NET V12.1 中,这些用于公式追踪的工具可以在TracePrecedents,TraceDependents 和 Remove Arrows 中的 Formula Auditing 组下找到:
(Spread .NET 设计器的公式追踪)
新增如 Excel 般的行、列交替样式支持
Spread .NET V12.1 加入了如 Excel 般的行、列交替样式支持,为交替行或列(通常称为色带)添加颜色,以便使工作表中的数据更易于浏览,此功能包括对内置Excel样式和主题的支持,如颜色渐变和图案填充。
(新增如 Excel 般的行、列交替样式支持)
实现方法:当需使用交替样式时,直接调用 AlternatingRows类包装的新接口即可,或者您也可以直接调用GrapeCity.Spreadsheet.dll的新公共接口来创建交替的行和列样式。
与 VSTO 类似的基于 1 的索引:更易于 VBA 代码移植
通过创建 IWorkbook,Spread .NET 为所有 GrapeCity.Spreadsheet.IWorkbook API(如 Microsoft Excel® VSTO API)提供了与 VSTO 类似的基于 1 的索引,这样做的目的是:可以轻松地将 Excel VBA 代码或旧的 Spread COM 代码(基于 1 的行和列索引部分)移植到 .NET 平台下(后者曾一直使用基于 0 的索引来支持以前版本中的所有 API,以实现 CLS)。
Spread .NET 为何要使用基于 1 的索引
鉴于 Microsoft Excel ® 支持Visual Studio Tools for Office(VSTO)的Visual Basic forApplications(VBA)对象模型中基于1的索引,而Spread .NET的常见使用场景便是从支持宏的 Microsoft 中创建使用VBA 和 VSTO的 电子表格应用程序。所以,Spread .NET使用基于 1 的索引,将更易于VBA 代码移植。
实现方法:只需一次调用,即可获得基于1的索引对象:
【C#】
IWorkbook iwb = WorkbookSet.CreateBase1Object(fpSpread1.AsWorkbook());
【VB】
Dim iwb As IWorkbook = WorkbookSet.CreateBase1Object(FpSpread1.AsWorkbook())
AsyncFunction 全新的异步函数和属性
Spread .NET 对创建自定义计算功能提供了丰富的支持,如使用AsyncFunction类创建类似RTD函数的异步函数。RTD 函数自 Excel 2002 引入,主要用于查看和更新实时数据。在 Spread .NET V12.1 中,您可以创建继承自 AsyncFunction 的自定义计算函数,实现对异步计算的支持,还可以通过各种 FunctionAttributes 来指示特殊函数的行为,如波动率或返回数组值。
如 Excel 般的“取消选择”功能
新的 F4 行为
V12.0
性能优化:数据绑定、设计时以及加密 Excel 文件
再上一个版本中,我们已经开始专注于性能改进,特别是对于大型 Excel 文件。V11 XLSX 导入和导出的性能比以前版本的 Spread .NET 快得多,我们继续调整版本12的性能。在此版本中,我们专注于三个核心用例以提高性能:
- 数据绑定:将数据绑定支持转移到核心电子表格模型的内部逻辑改进增强了性能,特别是对于涉及绑定数据计算的常见用例。
- 设计时:在表单资源中保存工作簿时,我们切换了控件的默认序列化逻辑。这样可以增强设计时间性能,尤其是在使用 Spread Designer 工具应用大型或复杂模板时。
- 加密 XLSX:内核逻辑改进将加密/解密支持转移到核心电子表格模型中,可在导入或导出受密码保护的 Excel 文件时提高性能。
可交换文件格式增强了性能
Spread .NET V12 具有新的可交换 XLSX 文件格式增强功能。使用 Spread Designer 或运行时代码保存或加载 XLSX 文件时可用的新ExcelSaveFlag和ExcelOpenFlag 枚举包括以前在导出为 Excel 格式时丢失的所有自定义 Spread 对象(如单元格类型和列页脚)。使用新的ExchangeableXLSX文件格式,所有自定义 Spread 设置都作为自定义流保留在 XLSX 中,并在重新加载时与其他内容一起加载。展望未来,这种新的文件格式取代了控件支持的XML序列化,并且使用更小的文件大小将更加高效。
使 Spread .NET 更像 Excel
Spread .NET V12 在新实例中对控件的默认行为进行了一些重大更改。Spread .NET Windows Forms 12 支持的新默认实例:
- 拖放单元格范围
- 拖动填充单元格范围
- 在标签条中移动工作表标签
- 选择多个范围
- 将公式键入单元格
- 像在 Excel 中一样自动调整行的大小
- 像在 Excel 中一样计算公式(与日期相关的函数返回双精度值)
- 折叠单元格边框以渲染边框线,如 Excel
- 用于增强单元格样式的新核心样式集成和 DefaultCellType 呈现
- 保护初始化为 False 的工作表的设置,以及初始化为 True 的所有单元格的锁定设置,如 Excel 中所示
- 带有零大小指示符的隐藏行和列,如 Excel 中所示
- 标签条始终如 Excel 中所示
- 与 Excel 一样,增强了工作表和表格的过滤器用户界面
- 具有更多内置操作的新键盘映射,例如新的 AutoSum 操作[Alt] + [=]
为了进行这些更改,我们更改了使用版本12创建的新实例的许多属性的默认值。此外,我们还发布了一些新功能和对话框,使最终用户体验更加熟悉,包括:
- 更多类似 Excel 的内置单元格样式
- 类似于 Excel 的格式对话框
- 数字格式
- 渐变和图案填充
- 增强了对单元格范围的排序和过滤
- 导入,导出和修改 Office 文档属性
改进升级体验:向后兼容性升级到版本 12
为了与以前版本的 Spread .NET 保持向后兼容,我们实现了对名为 LegacyBehaviors 的新设计时属性的支持,该属性在运行时启用了一组新的特殊兼容模式。这些传统模式是为升级用户设计的,默认情况下,从早期版本的 Spread .NET 升级的控件实例将自动使用 LegacyBehaviors 来最大化升级后实例的向后兼容性。电子表格控件的默认构造函数现在使用 LegacyBehaviors.All 创建新实例,该实例启用所有传统操作模式,因此使用使用该构造函数的旧版本的所有升级代码将具有最大向后兼容性。
新的 Legacy 模式
Spread .NET Windows Forms 12 中提供了四种独立的 LegacyBehavior 模式,每种模式都可以单独启用或禁用:AutoRowHeight,CalculationEngine,PropertyDefaults和Style。
- AutoRowHeight 标志禁用新的自动行高行为。
- 计算标志启用遗留计算模式,这使得所有与日期相关的函数返回与以前版本中一样的 .NET DateTime 数据类型,而不是像 Excel 中那样返回双数据类型。
- PropertyDefaults 标志禁用属性的所有新默认值,以启用上述新的类似 Excel 的行为。使用此标志时,Spread .NET 早期版本中实现的所有旧属性都保留其旧的默认值,包括工作表 Protect defaulting 为 True 和单元 Locked 默认为 False。
- Style 标志禁用单元格中新的核心样式模型集成和新的 DefaultCellType 呈现,而是使用旧版样式模型和先前版本的 GeneralCellType 呈现。
更容易地升级到 Spread .NET V12
首先,更改项目引用以使用版本 12 DLL。 然后更新项目中的 licenses.licx 以引用新版本。 项目中的所有实例都将自动使用 LegacyBehaviors.All,您的电子表格应该像以前一样运行。您可以立即开始增强项目以利用新的API和功能!关闭LegacyBehaviors 以根据具体情况启用新功能。
新的设计时行为
在设计时,现在使用 LegacyBehaviors.None 创建新实例,该实例禁用所有传统操作模式并启用控件的所有新功能。
新的基于 VSTO 的 API 接口和功能增强
许多基于 Visual Studio Tools for Office API 的新 API 在版本 12 中的 GrapeCity.Spreadsheet.dll 中公开。这个新的 API 层支持版本 12 中的新功能增强,并提供对工作簿各个方面的无与伦比的控制级别。仅 IRange 接口就有 31 个方法重载和 56 个属性,而这只是这个庞大的新 API 层中暴露的数百种新类型中的一种。
这个激动人心的新 API 可以与控件分开运行,使应用程序能够使用新的 Factory 类以极高的效率在内存中创建和操作工作簿。这可用于在 Web 服务器或 Azure 中为无 UI 的服务器端用例提供支持。您还可以将使用 Factory 类创建的实例附加到控件的实例:
GrapeCity.Spreadsheet.IWorkbookSet workbookSet = GrapeCity.Spreadsheet.Win.Factory.CreateWorkbookSet(); fpSpread1.Attach(workbookSet.Workbooks.Add())
控件实例不需要位于窗体中用于打开,保存或操作工作簿或工作簿集的内容的表单内。您还可以使用控件的API生成受密码保护的PDF或XLSX文件。这对于满足个人医疗,财务或其他敏感数据的安全要求非常重要。
引用外部工作簿中的参考单元格和范围
您现在可以在外部工作簿中引用单元格和范围,并将这些外部引用导入/导出到 XLSX。 WorkbookSet 可以包含许多相互引用并相互实时重新计算的相关工作簿,这些工作簿可以在同一表单或不同表单上附加到控件的实时实例。对已卸载工作簿的外部引用与Excel中一样。
(Spread .NET v12 跨工作簿引用)
其他功能增强
本次发布版本也包括其他功能增强。关于发布更新的更多细节, 请参考发布说明。
V11.0 Update2
性能大幅增强
现在,Spread .NET 表格控件在针对数据处理和过滤时的速度较之前提升了两到十倍,并且使用的内存远远少于上一版本。您将在进行数据过滤和导入文件时看到明显的改进。
462 种 Excel 公式支持
Spread .NET 新增了十几种用于科学,统计,工程和商业的 Excel 公式支持。 点击了解详情
DLL 上的数字签名
从这个版本开始,Spread .NET 的每个程序集都将使用 GrapeCity 的数字签名。
Spread for WinForm
增强颜色筛选
如Excel一样,增强颜色筛选用户界面支持按“无填充”进行筛选。
为了支持该功能,DefaultStyleCollection.DataAreaDefault 的默认 BackColor 从 SystemColors.Window 更新为 Color.Empty。
为 TEXT 函数提供 Excel 语法支持
为和 Excel 行为一致,TEXT 计算函数现在使用 Excel 语法对值进行格式设置(替代了过去使用 .NET 语法)。如需恢复使用 .NET 语法来格式化值,可以使用以下代码将旧的 TEXT 函数作为自定义函数进行添加,该自定义函数将覆盖内置的 TEXT 函数:
fpSpread1.AddCustomFunction(new GrapeCity.Spreadsheet.Win.TextFunction());
Spread for ASP.NET
如Excel一样,增强颜色筛选用户界面支持按“无填充”进行筛选。为减少具有大量隐藏单元下的视图状态大小,可将新属性 AllowGenerateHiddenData 设置为 false。 此属性比 AllowGetAllHiddenValue 更强大。当其设置为 false 时,表单中的所有隐藏值都保留在服务器端,从而减少视图状态的大小,并提高了页面安全性。在这种情况下,客户端接口 GetHiddenValue 和 GetHiddenCellValue 将不起作用。
其他功能增强
本次发布版本也包括其他功能增强。关于发布更新的更多细节, 请参考发布说明。
V11.0
Spread for WinForm
增强 spread 产品性能
新版本大幅提升了 Spread 产品的性能。无论是大数据量、丰富样式、复杂公式的文件,在导入、导出时间消耗和计算内存等方面,都有明显的提升。
增强打印功能
新增的打印增强功能包括:完全支持打印预览用户界面中内置的打印机设置。用户可以感受到和 Excel 一样亲切的体验。
增加单元格和数据验证
新增的单元格验证和增强的数据验证,为用户数据输入提供了强大的新选项,并支持在 Excel 文档中保存和加载数据验证。支持了 Excel 中提供的 8 种数据验证类型,包含:任何值、整数、小数、序列、日期、时间和文本长度以及自定义。
增加更多公式支持
新增 130 多个计算公式,使公式总数达到了 462 个。新支持数组公式(使用 Ctrl + Shift + Enter 输入)可以实现高级矩阵和数组计算。当用户输入创建循环引用的公式时,触发新添加的 CircularFormula 事件。
增加公式一览表
本次增加 spread 所有支持公式一览表。
增加保护工作簿功能
新增保护工作簿结构功能,并可设置密码。该功能保护工作簿结构并防止用户删除或重新排序工作表。
增加文档属性接口
新增接口来获取和设置文档属性,包含:标题,主题,作者,公司等。
增加超链接单元格类型支持排序和过滤
新的增强型 HyperLinkCellType 现在可以很好地处理排序和过滤功能。
Spread for ASP.NET
增强命令栏
命令栏支持用于 PDF 导出和 Excel 文档导出的新按钮以及密码选项。
支持移动行
支持从行头单元格拖放,即可直接在用户界面中移动行的功能。
其他功能增强
本次发布版本也包括其他功能增强。关于发布更新的更多细节, 请参考发布说明。
V10.0
WinForm 和 ASP.NET
新增 Excel 2016 图表类型
- 直方图
- 瀑布图
- 漏斗图
- 箱形图
- 旭日图
- 树状图
Spread for WinForm
新增单元格类型
- Gc 字符掩码
- Gc 组合框
- Gc 掩码
- Gc 数值
- Gc 文本
- Gc 时间间隔
类Excel 状态栏
单元格级别锁定样式
支持设置不同于整个表单的单元格特有锁定样式。
Spread for ASP.NET
支持包含图片的 Excel 文件进行导入导出
整数单元格类型新增下拉数字键盘
新增 FormulaExtender 组件
通过这个组件,我们可以在 Spread 之外引用公式。
其它功能增强
本次发布版本也包括其它功能增强。关于各个平台发布更新的更多细节,请参考 发布说明。
V9.0 Update1
SpreadJS 产品包独立,不再包含在 Spread .NET 套包中。 点击查看 SpreadJS 版本新特性。
Spread for WinForm
- 提升增加行时的性能。
- 提升加载 XML 文件的性能。
- 提升分组性能。
- 增强打印页眉页脚导出到 Excel 文件的能力。
- 想了解本次发布更多细节请参考 发布说明。
Spread for ASP.NET
- 增强跨页引用空单元格公式。
Spread for Silverlight
- 增强导入含有多条件格式的 Excel 文件类型。
Spread for WPF
- 增强导入 Excel 文件的打印设置。
- 增强导入含有多条件格式的 Excel 文件类型。
- 增强控件添加时的 Licenses.licx 文件的更新。
Spread for WinRT
- 增强导入含有多条件格式的 Excel 文件类型。
V9.0
所有平台
- 全面支持 Visual Studio 15
- 全面支持 Windows 10操作系统和 Edge
- 全面支持 Excel 2016文件的导入和导出,以及 Office 2016主题。
SpreadJS
预览和打印数据视图
表格切片器
汉化
注:SpreadJS 本地化只包含 SpreadJS 产品本身,不包含设计器和 ExcelI/O 部分。
Excel 导入/导出
固定位置浮动对象
设计器增强
- 增强粘贴:可以选择粘贴所有、粘贴值、粘贴格式、或者粘贴公式。
- 标签颜色:在设计器界面上可以更改表单标签颜色。
类Excel 行为的增强
- 隐藏行列指示器
- 禁止表单导航
- 滚动时忽略隐藏行列
- 锁定单元格不允许拷贝
- 保护工作表和单元格
WinForm
滚动更平滑、更精确
对角线边框
增强高 DPI 支持
增强数值单元格类型
Spread 添加了一个全新的数值单元格类型(GcNumberCellType),它为数值类型单元格添加了很多功能和属性。功能包括:
- 备用文字
- 呈现字段
- 备用文字
- 字段
- 右键菜单
- 负值颜色
- 推荐值
- 下拉窗
- 下拉计算器
- 弹出窗
- 侧边按钮
- 减号键切换正负符号
- 日文键盘支持
- Delete 和 Backspace 键删除
- 百分比支持
- 改进粘贴行为
新图表线风格(支持 Excel 导入/导出)
Spread 目前允许设置折线图的系列风格,这更类似 Excel 的行为。您既可以通过设计器,也可以通过代码设置相关属性。导入 Excel
中的折线图,这些属性也会被保留。相关设置包括:
- 颜色
- 透明度
- 宽度
- 复合类型
- 短划线类型
- 箭头(端点类型、端点大小、箭头大小、箭头类型)
- 联接类型
日期选择器友好地支持触摸
Spread 目前包含支持触屏交互的日期选择器。
新的选择风格设置
为了给用户提供熟悉的体验,Spread 通常和 Excel 保持一致。但是有时开发人员想改变某些行为。在这种需求下,我们添加了设置单元格选择风格的属性。
- 在选择区域同一背景中高亮激活单元格。在 Excel 中,该单元格不能有选择背景。
- 不高亮选择的行列头。在 Excel 中,选择的行列头将被高亮。
- 显示行编辑选择器。
更多增强
- 增强选择边框:当区域选择时,Spread 默认会在整个选择外面绘制边框。
- 可选的过滤行为:当设置行过滤时,Spread 自动应用过滤规则到录入或编辑的新数据或者样式上。Excel 则不是这样。Excel 过滤需要明确地执行。Spread 目前也有类似 Excel 的可选设置。
- 编辑单元格保持垂直对齐设置:当编辑单元格时,它的垂直对齐设置将被保留。而老版本将在编辑时变更为顶对齐显示。
- 支持远程桌面:Spread 在运行时完全支持使用远程桌面。
- 提升PDF导出性能: 大致提升了10%的创建 PDF 速度。
- Shape 文字对齐:Spread 目前支持在 Shape 中文字的对齐能力。
- 提升行列移动性能: Spread 行列在移动时,拖拽中会显示选择的克隆效果。这偶尔会导致性能不佳。现在您可以禁止它或者创建自定义行为来避免这个问题。
ASP.NET
Edge 和 Chrome 上的触摸支持
支持 AJAX 控件套包 v15.1
Spread 目前支持如下 AJAX 控件套包 v15.1扩展的单元格类型:
- 自动完成
- 日历
- 组合框
- 过滤文本
- 掩码编辑
- 互斥复选框
- 数值微调器
- 评分
- 滑动条
- 幻灯片
- 水印文本框
V8.0 Update1
Spread .NET 中新增 SpreadJS 前端 HTML5 表格控件
Spread for ASP.NET 平台的增强
-
支持了 ThemeRoller
只需要少量代码就可以让您的电子表格应用程序拥有与 JQueryUI ThemeRoller 同样漂亮的皮肤。ThemeRoller 拥有丰富多样的多款默认皮肤样式,当然您也可以自定义独属于您的那款皮肤。无论是默认皮肤还是自定义皮肤,您都可以在 Spread 应用程序的各个小细节上,添加时尚感和一致性兼得的外观。 -
增强了平滑滚动
Spread ASP.NET 平台在 ipad 和 iphone 上,新增支持了 -webkit-overflow-scrolling 的滚动效果。当您使用这种滚动效果,在您完成滚动手势并手指离开触屏之后,内容将保持一段时间的持续滚动。持续滚动的速度和距离取决于您滚动手势的力度。 -
增强了剪切板的支持
Spread 剪切板功能现在支持了更多主流的浏览器,比如 iPad 上的 Safari 以及 FireFox 浏览器。 -
浏览器缩放
此次版本更新修复了用户使用浏览器缩放功能体验上的不足。 -
日期单元格选取日期
使用日期单元格类型时,现在您可以使用下拉日历控件轻松的选取你所需要的日期。 -
增强数据验证
- 粘贴时验证:用户粘贴信息到单元格中时,Spread 现在能够自动验证数据。
- 服务端验证:Spread 现在支持服务器端验证,您可以访问更多内置.NET 验证逻辑。
其它平台的增强
本次发布版本也包括其它平台的增强。关于各个平台发布更新的更多细节,请参考 发布说明。
V8.0
Spread for WinForm
Spread for ASP.NET
Spread WPF-Silverlight
Spread WinRT
V7.0 Update4
Spread for WinForm
- 可在公式条件格式化规则(FormulaConditionalFormattingRule)中使用自定义名称。
- 新增 OpenExcel 重载方法,可在不清除使用 SetInputMap 设置的快捷键的情况下导入 Excel 文件。
- 新增对多区域表达式的支持。
Spread for ASP.NET
- 新增 ExpandAll 方法用于展开或折叠所有级别的层次结构。
- 可直接导出分组布局和数据到 Excel 文件,同时,指定 SaveAsViewed 导出选项时也会导出分组视图。
- 支持将工作簿中的某一个工作表保存为 Html 文件。
- 增加客户端属性 ClientAutoSizeMaxHeight 和 ClientAutoSizeMaxWidth。
- 为 FilterItemValue 类型增加 Value 属性。
Spread WPF-Silverlight
Spread WinRT
V7.0 Update3
Spread for WinForm
Spread for ASP.NET
Spread WPF-Silverlight
Spread WinRT
V7.0 Update2
Spread for WinForm
Spread for ASP.NET
Spread WPF-Silverlight
Spread WinRT
V7.0
Spread for WinForm 7.0 新特性
增强条件格式
过滤器增强
新增了全新的过滤条,用户可以快速便捷的输入过滤器条件并应用到数据中。 这一特性在 Spread for Windows Forms 以及 Spread for ASP.NET 中均有提供。
中文本地化增强
同时对 IME 做了增强,提供 ImeMode/ImeSentenceMode 属性,用于在编辑单元格时设置 IME 状态。
设计器增强
- 设计器中新增命名管理器,用户可以在运行时使用,同时设计时可以自定义命名。
- 设计器中新增用户界面用于在导入导出 XLS/XLSX 时指定 ExcelOpenFlags/ExcelSaveFlags。
- 设计器中新增用户界面用于设置快捷键对应关系,设计时支持快捷键对应关系序列化。新增 SpreadAction 类型用于执行类似 Excel 的行为。
- Spread 设计器中,当选中图形、备注或图表对象时,可以在属性设置表中设置属性。
- 单元格和 RotationAngle 对象的 CanFocus 属性可以在设计器中设置,该属性仅在预览窗口中生效。
- 允许用户使用 “DateTime.Now” 作为 DateTimeCellType.DateDefault 属性的值,它默认使用当前的时间值。
其他 Spread for Windows Form 的增强
- 支持通过拖拽单元格右下角的滑块实现拖拽填充和自增值填充。
- 设计时和运行时支持120 DPI。
- 为行错误和单元格错误提供错误指示器弹出消息。
- 支持类似 Excel 的自适应拉伸文本对齐方式,支持导入导出自适应拉伸文本的 xls/xlsx 文件。
- 新增 AcceptsArrowKeys 枚举类型用于处理编辑模式下激活单元格的导航方式,当光标在单元格的开始或者结尾的时候。
- 为 MultiColumnComboBox 类型增加 Editable 属性。
Spread for ASP.NET 7.0 新特性
上下文菜单
列头 RowTemplate
用于单元格编辑器的 Css
编码增强
https://www.asp.net/vnext/overview/aspnet/whats-new#_Toc318097413
性能提升
- 新增 LoadOnDemandMode 属性用于支持在用户滚动到最后一行之前通过后台加载数据。新增 TriggerMode 属性用于支持定时加载和越界加载。
- 提升了渲染表格、PDF 以及导入 Excel 文件的性能。
- 提升了客户端滚动性能,通过后台按需加载数据并触发新的客户端事件。
- 增强了虚拟滚动,它可以在加载新的数据行时保持来自前一页面的额外数据。
- 支持异步渲染图表。
- 通过合并 JS 和 CSS 优化脚本加载时间。
- 使用平行任务库实现了关键性能的提升。
其他 Spread for ASP.NET 的增强
- 为 DateTime、Currency、Double 和 Integer 单元格类型增加独立的编辑模式和非编辑模式格式。
- 增强虚拟页面以支持滚动条文本提示。
- 打印时支持行和列的分页。
- 支持客户端脚本锁定和解锁。
- 新增 Cell.EncodeValue 属性,支持在单元格文本中直接输入原始 HTML 标记。
- 客户端支持在隐藏的行或列中设置单元格的值。
- 新增 ClientIDMode 支持。
V6.0
Spread .NET 6.0 新特性
波形图(Sparklines)
添加波形图到表单上
波形图标记高亮突出特殊值。
波形图组共享外观和样式设置。
其他增强
方便易用的波形图 API。
最终用户可以通过内嵌编辑器创建和编辑波形图。
可扩展的波形图模块支持用户自定义波形图
通过新增的照相机图形(Camera Shapes)创建表单控制面板
内嵌 UI 支持剪切板操作(剪切、复制和粘贴)。
方便易用的照相机图形 API。
最终用户可以通过内嵌编辑器创建和编辑照相机图形。
提升 Excel 导入导出性能
新增 Spread 设计器功能利于设计强大的用户界面
新增的照相机工具,用于创建照相机图形以及表单控制面板。
新增浏览器支持
提升客户端脚本对 Firefox 4 的支持。