Spread .NET 表格控件 - 历史版本
下载 Spread .NET 所有历史版本,请 点击此处
Spread .NET 历史版本
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

编码增强
http://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 的支持。