Spread .NET 表格控件 - V18.0 新特性
Spread.NET v18.0 已经发布,新版本中加入了全新的 WPF 控件版本、改进了 PDF 保存(具有更高分辨率),更新的详细内容请参考下面的介绍。
PDF导出
Spread WinForms 和 WPF V18 现在支持将电子表格文档保存为更高分辨率的 PDF 输出,其许多行为与 Excel 相同。这可以通过多种方式实现:
将工作表保存为 PDF
sheet1.SaveAs("d:\\tmp\\Book1.pdf", GrapeCity.Spreadsheet.IO.FileFormat.PDF);
将工作簿保存为 PDF
book1.SaveAs("d:\\tmp\\Book1.pdf", GrapeCity.Spreadsheet.IO.FileFormat.PDF);
打印 PDF
fpSpread1.Features.ExcelCompatiblePrinting = true;
fpSpread1.BorderCollapse = BorderCollapse.Enhanced;
新的 PDF 导出支持 Excel 兼容打印,并且现在保留图像质量。其他一些打印增强功能包括:
富文本支持
Flat Style 模式格式
页眉/页脚上的图像
具有透明颜色度的形状
新的 WPF 电子表格版本
随着 Spread.NET v18 版本的发布,我们推出了全新的WPF 电子表格版本!我们在后续版本也会继续增加新功能来增强 WPF 控件。此版本引入的一些新功能包括:
- 计算增强
- 外部参考
- 迭代计算
- 异步函数
- 动态数组
- Excel 新函数
- 迷你图函数
- 外部变量
- 领域和丰富的价值结构 - 新的图表引擎可提供更多 Excel 兼容图表(数据表、趋势线等)
- 图表颜色和样式
- 公式文本框
- 可更换XLSX
- XML 数据文件支持
- 表数据绑定
- 按颜色、图标等排序
- 删除重复项
- 类似 Excel 的填充(渐变、图案、主题颜色)
复制时跳过不可见范围
复制一系列单元格时,可以从副本中排除隐藏单元格。 RichClipboard属性以及CopySkipInvisibleRange属性必须设置为 true:
fpSpread1.Features.RichClipboard = true;
fpSpread1.AsWorkbook().Features.CopySkipInvisibleRange = true;
表格自动更新过滤器
Spread for WinForms 现在使您能够更改表的过滤器,以便在用户编辑单元格或更改数据源后自动更新。可以使用以下代码设置该属性:
table.AutoFilter.AutoUpdate = false;
独立的上下文菜单
在以前的版本中,只有在使用功能区控件时才能显示上下文菜单。在 v18 中,现在可以在没有 Ribbon 控件的情况下使用上下文菜单,只需创建一个新的SpreadContextMenuStrip实例即可:
fpSpread1.ContextMenuStrip = new SpreadContextMenuStrip();
插入行和列时复制宽度/高度和样式
现在,将行和列插入 WinForms 电子表格会将行或列的大小和样式从前一行或列复制到新插入的行或列。支持通过设计器和运行时的上下文菜单、功能区栏以及使用 Ctrl+Shift+“+”进行操作。
显示和执行撤消/重做历史记录
设计器中的快速访问工具栏现在支持撤消/重做操作历史记录,可以再次执行或撤消操作。单击快速访问工具栏中的撤消/重做下拉按钮即可应用。
突出显示公式
DisplayFormulas属性已得到增强,可以突出显示活动单元格的公式。只需将该属性设置为 true 即可实现:
IWorksheet TestActiveSheet => fpSpread1.AsWorkbook().ActiveSheet;
private void Form1_Load(object sender, EventArgs e)
{
TestActiveSheet.View.DisplayFormulas = true;
TestActiveSheet.Cells["A1"].Value = 1;
TestActiveSheet.Cells["A2"].Formula = "A1";
TestActiveSheet.Cells["A2"].Select();
}
从指针位置获取单元格引用
添加了一个新的 API,用于获取特定 x,y 坐标(以像素为单位)的单元格。这对于在特定单元格坐标处布置图表和形状或从特定点获取单元格引用非常有用。例如,此代码将返回“B2”和“B21”:
fpSpread1.Height = (int)fpSpread1.ActiveSheet.Rows.Default.Height * 15;
RectangleShape s = new RectangleShape();
s.Size = new System.Drawing.Size(60, 60);
fpSpread1.ActiveSheet.AddShape(s, 1, 1);//B2
RectangleShape s1 = new RectangleShape();
s1.Size = new System.Drawing.Size(60, 60);
fpSpread1.ActiveSheet.AddShape(s1, 20, 1);//B21
Debug.WriteLine(fpSpread1.ActiveSheet.GetCellReference(s.Location.X, s.Location.Y).ToString());
Debug.WriteLine(fpSpread1.ActiveSheet.GetCellReference(s1.Location.X, s1.Location.Y).ToString());
历史版本
查看更多关于 Spread .NET 表格控件 的历史版本。