头图
最新技术资源(建议收藏)
https://www.grapecity.com.cn/resources/

前言

在现代工作环境中,信息的处理和管理是至关重要的。表格是一种常见的数据呈现和整理工具,被广泛应用于各行各业。然而,随着技术的不断发展,市场对表格控件的需求也越来越高。随着工作效率的重要性日益凸显,一款高效的表格控件成为了开发者们的首选,因此本文小编将从葡萄城公司的服务端表格组件GrapeCity Documents for Excel (以下简称GcExcel)的视角出发,为大家介绍如何充分利用这一控件来提升开发效率和用户体验。

产品介绍

GrapeCity Documents for Excel (简称:GcExcel)是一款基于 .NET 平台和 Java 平台的支持批量创建、编辑、打印、导入/导出Excel文件的服务端表格组件,能够高性能处理和高度兼容 Excel。GcExcel 可助您快速高效地处理 Java 平台中各类 Excel 表格业务需求,从而提高您的开发效率和产品质量,实现更高的商业价值。

GcExcel 原生支持多种格式的文件生成(如PDF、EXCEL、HTML、CSV及图片格式等),无需依赖第三方工具即可轻松满足批量生成的需求。其内置类 Excel 的样式和打印设置,完美应对多样的打印导出需求。同时,条件格式、多种图表类型、数据透视表、迷你图等多样的数据展示功能,能够满足各种报表展示要求。通过二次开发和扩展,您还能利用 GcExcel 实现 PDF 的异步导出和进度追踪,进一步拓展系统应用能力,为数据导出需求提供更高效、更多样化的选择。

GcExcel 可与纯前端表格控件 SpreadJS 前后端兼容,为您开发的应用程序提供在线文档的前后端数据同步、在线填报与服务端批量导出与打印,以及类 Excel 报表模板设计与服务端高性能处理等一整套类 Excel 全栈解决方案。

产品的新增特性:

异步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 现在支持通过在 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

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

新增迷你图

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 的信息,请访问葡萄城官方网站

扩展链接:

数据驱动创新:以Java编程方式定制数据透视表

Java批量操作Excel文件实践


葡萄城技术团队
2.7k 声望28.6k 粉丝

葡萄城创建于1980年,是专业的软件开发技术和低代码平台提供商。以“赋能开发者”为使命,葡萄城致力于通过各类软件开发工具和服务,创新开发模式,提升开发效率,推动软件产业发展,为“数字中国”建设提速。