GcExcel V7.2 服务端表格组件新版本:异步函数、模板过滤、PDF 渲染功能增强

2024/08/26 09:22

返回新闻中心

近日,葡萄城服务端表格组件GcExcel正式发布 V7.2 新版本。此次更新带来了诸多创新特性,旨在提升您的文档处理体验。以下是本次发布的主要亮点:

  • 引入对多种高级 MS Excel 特性的支持,提供更加强大和灵活的工具;

  • GcExcel 模板的重要升级,增强了特性和性能,使模板创作更加高效;

  • 新增与 SpreadJS 的集成特性,包括处理 SJS JSON 文件的新方法重载。

这些增强与新功能将帮助您更有效地管理和操作您的文档,无论是在创建模板、处理数据还是在集成不同平台方面,都将带来前所未有的便捷。如下是主要更新点。

异步IMAGE函数

Excel 中的 IMAGE 函数允许用户将图像直接插入单元格,从而增强电子表格的视觉吸引力,例如要点说明、添加 Logo 或结合数据以说明分析。在最新版本中,GcExcel 现在包括 IMAGE 函数,允许用户在单元格内添加图像。支持的图像类型与 ImageType 枚举中可用的类型相同。此外,GcExcel 还添加了 Workbook.WebRequestHandler 接口,允许用户自定义如何发送网络请求,通过 WebRequestHandler,IMAGE 函数可以通过 URL 显示来自在线来源的图像,该接口允许异步处理网络请求,并提供了一种向指定 URI 发送 GET 请求的方法,这在 导出 PDF 时很有用。

参考以下代码,了解在单元格中如何设置图像。

Workbook.WebRequestHandler = new WebRequestHandler();
var workbook = new Workbook();
var sheet = workbook.ActiveSheet;

sheet.Range["A1"].Formula = "=IMAGE(\"https://support.content.office.net/en-us/media/926439a2-bc79-4b8b-9205-60892650e5d3.jpg\")";

workbook.Calculate();
workbook.WaitForCalculationToFinish();

workbook.Save("D:\\res.pdf");

新增 Goal Seek 功能

Excel 的目标求解功能使用户能够确定达到期望结果所需的输入值。通过设置一个目标输出,目标求解功能会自动调整输入值,直到达到期望的结果。此功能在场景分析和 Excel 建模过程中,对决策制定具有较高的实用价值。

GcExcel 新增了一个 API,可以通过编程方式在电子表格中添加目标求解功能。新的 IRange.GoalSeek(double goal, IRange changingCell) 方法(布尔值)尝试通过修改指定的 changingCell,来实现由 IRange 所代表的单元格中的公式计算结果达到指定的目标。goal 参数指定了期望的目标输出,而 changingCell 参数指定了将改变其值以实现目标值的单元格。


数据透视表中的标签筛选和数值筛选

在V7.2版本中,GcExcel增强了数据透视表筛选的支持,使开发人员能够以编程方式在数据透视表中优化和管理大型数据集。GcExcel新增的筛选选项有助于缩小数据范围,专注于特定条件,从而使分析更加精确和相关。

GcExcel 支持新的 API 在数据透视表中添加标签筛选(包括日期筛选)和数值筛选。标签筛选 API 有助于根据行或列字段中的标签筛选数据,而数值筛选 API 则用来显示满足特定条件的数值数据。GcExcel 提供的 IPivotField 接口的 PivotFilters 属性,使用户可以使用 PivotFilterType 枚举添加标签、数值或日期筛选到数据透视表字段中,该枚举可以作为参数传递给IPivotFilters接口的Add方法。新的API添加还包括 AllowMultipleFilters 属性,帮助在一个字段上同时添加标签和数值筛选,从而允许开发人员在一个字段上添加多个筛选。新API添加还包括ClearLabelFilterClearValueFilterClearAllFilters方法以删除筛选。


GcExcel 模板增强:根据数据源进行数据过滤

在业务场景中,开发人员会整合来自多个数据源的数据,这些数据之间往往存在着关系。GcExcel 现在支持通过在 Excel 模板中定义过滤属性来表示这些关系。单个模板单元格可以对应数据源中的多条记录,开发人员可以相应地过滤扩展数据。模板中的过滤属性也可以轻松修改,使报告能够动态适应不断变化的数据。

模板数据过滤功能,仅支持 .NET 中的 System.Data.DataTable 或 ITableDataSource 以及 Java 中的 java.sql.ResultSet 或 ITableDataSource 。

GcExcel 增加了使用 FFilter 属性定义过滤条件和过滤切片的功能。过滤属性可以添加到 Excel 模板文件的所需单元格中,条件过滤的语法是

F/Filter = (field1 > 1 and field2 = 2 or field3 <> 3),

GcExcel 同样增强了从多张表中进行数据处理和报告生成的能力。在条件过滤属性,您可以使用 AND、OR、NOT 和 LIKE 等操作符和关键来表示不同过滤条件间的关系。

切片过滤属性则通过指定从一个索引到另一个索引的范围来实现数据提取。切片过滤属性可以使用以下语法添加到 Excel 模板文件的所需单元格中:

F/Filter = [start:stop:step]

此外,您也可以将条件过滤属性和切片过滤属性结合起来,GcExcel 会先过滤具有条件过滤属性的记录,然后根据应用的切片过滤属性过滤记录。语法如下:

F/Filter = [start:stop:step](field1 > 1 and field2 = 2 or field3 <> 3)

以下示例展示了一个复杂的业务场景,该场景展示了如何通过在两个表中各自的单元格上应用双重过滤条件,精准地提取所需数据。


新增迷你图

GcExcel 现在支持通过对应的新函数来添加线型柱状以及盈亏迷你图。迷你图是嵌入在单元格内的紧凑且简单的图表,用来直观地展示数据趋势。你可以在GcExcel中使用以下语法来添加迷你图:

=LINESPARKLINE(data,dataOrientation,[dateAxisData],[dateAxisOrientation],[setting]).

=COLUMNSPARKLINE(data,dataOrientation,[dateAxisData],[dateAxisOrientation],[setting]).

=WINLOSSSPARKLINE(data,dataOrientation,[dateAxisData],[dateAxisOrientation],[setting]).

如果想了解每个参数的具体用法,请参考 SpreadJS 迷你图

注释:在电子表格中添加迷你图(Sparklines)的支持是 SpreadJS 的一个特性,这些函数的结果将在 SpreadJS 的 SSJSON I/O、SJS I/O、PDF、图像和 HTML 导出文件中可见。

worksheet.Range["G3:G5"].Formula = "=COLUMNSPARKLINE(B3:F3,1,,,\"{showMarkers:TRUE}\")";
worksheet.Range["G3:G5"].Formula = "=LINESPARKLINE(B3:F3,1,,,\"{showMarkers:TRUE,lineWeight:1.5,markersColor:#7030a0}\")";
worksheet.Range["G3:G5"].Formula2 = "=WINLOSSSPARKLINE(B3:F3-300000,1,,,\"{showNegative:TRUE}\")";

下图展示了一个在 SpreadJS 中添加到电子表格的柱状迷你图(Column Sparkline)。


基于像素的渲染 PDF 和图像

为了增强电子表格内容导出 PDF 和图像的性能,并使其渲染效果更接近于 SpreadJS,GcExcel 引入了 WorkbookOptions 类,该类提供了一个属性 —— PixelBasedColumnWidth。如果将其设置为true,则在将电子表格渲染为 PDF 和图像时,工作簿会采用基于像素的列宽。此外,此选项会让其他 API 行为,如自动调整列宽和其他 PDF 及图像渲染结果,更加接近于SpreadJS的效果。


在导出到PDF时定制边框样式

GcExcel 现在允许您使用 PdfSaveOptions 类中的新 BorderOptions 属性来导出带有自定义边框样式的 PDF 文档。此属性利用了 CustomBorderStyle 类的 BorderWidthDashes 属性,以及BorderLineStyle 枚举,以定义边框宽度、虚线段长度和线条样式。BorderWidth 属性设置在导出 PDF 文档时的边框宽度,而 Dashes 属性确定虚线中每一段的长度。


总结

GcExcel V7.0 Update2 的发布,标志着服务端表格组件的新高度。葡萄城将继续致力于为用户提供更强大、灵活的工具,助力各行业开发者在文档管理和报表生成方面的创新和发展。

如需了解更多关于 GcExcel V7.0 Update2 的信息,请访问葡萄城官方网站


关于葡萄城

葡萄城软件是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。