GrapeCity Documents V8.0 Update2 新特性
服务端表格组件 GrapeCity Documents for Excel 更新说明
1、性能飙升:三大场景效率翻倍
针对企业级应用中“大文件加载慢、公式计算卡、内存占用高”的痛点,GcExcel 进行专项优化,实测数据表现亮眼:
(1)公式计算速度提升 30%+
聚焦开发者高频使用的查找类、统计类、动态数组函数,优化计算逻辑:
- 查找函数:VLOOKUP、XLOOKUP、HLOOKUP、MATCH 等在百万级数据区域中搜索速度提升 30%;
- 统计函数:POISSON.DIST(泊松分布)计算时间降低 83.96%,COMBIN(组合数)降低 70.46%,AVERAGEIF、COUNTIF 提升 50%+;
- 动态数组函数:UNIQUE(去重)、SORT(排序)内存占用减少 40%,避免大数组计算导致的内存溢出。
(2)海量自定义名称文件操作提速 50%
财务报表、ERP 系统生成的 Excel 模板常包含数万自定义名称,此前加载时检索耗时占比高达 38%。V8.0 Update2 优化存储与检索逻辑:
- 打开/保存含 14.4 万个自定义名称的文件时,速度提升超 50%;
- 检索耗时占比骤降至 1%,彻底解决大文件加载卡顿问题。
(3)模板数据处理内存优化 25%
针对使用 ITableDataSource 加载海量数据的模板场景(如 BI 报表、批量账单生成),通过内存复用机制:
- 内存占用降低 25%,减少服务器资源消耗;
- 避免频繁 GC(垃圾回收)导致的应用卡顿,支持更长时间的批量处理任务。
2、公式功能升级:动态数组与高阶函数全覆盖
(1)新增 4 大高频函数,简化数据处理
针对“分组聚合、数据清洗”等高频场景,新增 4 个实用函数,无需复杂嵌套即可完成复杂计算:
函数名称 | 核心功能 | 应用场景 |
---|---|---|
GROUPBY | 单维度分组聚合,支持排序、筛选 | 按“地区”汇总销售数据、按“部门”统计员工绩效 |
PIVOTBY | 双维度交叉分组(类似数据透视表) | 按“地区+产品类别”交叉汇总销量、按“年份+季度”统计营收 |
PERCENTOF | 计算子集占总体的百分比 | 统计某产品销量占地区总销量比例、某部门成本占公司总成本比重 |
TRIMRANGE | 自动移除数据区域的空行/空列 | 清洗 ERP 导出的含空行原始数据、规整用户录入的杂乱表格 |
示例:用 GROUPBY 按年份汇总产品销量
(2)简化 Lambda 写法,代码更简洁
Lambda 函数是动态数组的核心,但传统写法需完整包裹(如
BYROW(A1:A10, LAMBDA(a, ABS(a)))
),冗长且易出错。V8.0
Update2 支持 Eta-reduced Lambda,可直接传递函数名作为参数:
- 简化前:
=BYROW(A1:A5, LAMBDA(x, SUM(x)))
- 简化后:
=BYROW(A1:A5, SUM)
代码量减少 40%,可读性与维护性大幅提升。
(3)Evaluate2 方法:完整获取动态数组结果
此前
Evaluate
方法仅返回单个值,无法处理动态数组“溢出”(Spill)结果。新增
IWorksheet.Evaluate2
方法,可完整获取数组公式的所有结果,完美适配 Excel
2021/365 特性:
// Java 示例:计算产品名称长度并写入单元格
Workbook workbook = new Workbook();
IWorksheet sheet = workbook.getWorksheets().get(0);
// 初始化产品数据
sheet.getRange("B4:B11").setValue(new String[]{"Apple", "Grape", "Pear", "Banana", "Coconut", "Strawberry", "Mango", "Pineapple"});
// Evaluate2 获取所有名称长度(返回数组)
Object evaluateRes = sheet.evaluate2("=LEN(B4:B11)");
// 将结果写入 D 列
sheet.getRange("D4:D11").setValue(evaluateRes);
workbook.save("产品名称长度分析.xlsx");
3、可视化与交互优化:图表适配与无障碍支持
(1)图表 Sheet 自适应选区缩放
传统图表 Sheet 需手动调整缩放比例以适配窗口,V8.0 Update2 通过
IWorksheetView.FitSelection
属性实现程序化自适应:
// C# 示例:设置图表自适应显示
worksheet.View.FitSelection = true;
自动化报表系统(如财务月报、销售周报)生成的图表可自动填满显示区域,避免因设备分辨率不同导致的内容截断。
(2)形状无障碍支持:符合企业合规要求
为满足政府、金融等行业的无障碍办公需求,新增“替代文本”与“装饰标记”功能,支持屏幕阅读器识别视觉元素:
-
:为图表、图片设置描述文本(如“2024 Q1 销售趋势图”);IShape.AlternativeText
-
:标记形状为“纯装饰性”(如背景花纹),屏幕阅读器会自动跳过。IShape.Decorative
// Java 示例:为柱状图设置无障碍属性
IShape chart = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 100, 100, 400, 300);
// 屏幕阅读器读取的描述文本
chart.setAlternativeText("2024年各地区销售对比柱状图,华北地区销量最高");
// 标记为非装饰性(重要内容)
chart.setDecorative(false);
(3)工作表背景图全流程兼容
支持读取和导出 SpreadJS(葡萄城前端表格控件)的工作表背景图(Base64 格式),并可导出至 PDF(需设置
PdfSaveOptions.PrintBackgroundPicture = true
),实现“前端编辑-后端处理-PDF 导出”的背景图一致性,解决此前前后端视觉差异问题。
4、开发者体验增强:错误处理与日志监控
(1)自定义函数错误值处理
此前自定义函数若传入错误值(如 #DIV/0!、#VALUE!)会直接中断公式。新增
CustomFunction.AcceptErrors
属性,支持主动接收错误值并自定义处理(如日志记录、返回默认值):
// Java 示例:自定义函数处理错误值
Workbook workbook = new Workbook();
// 注册支持错误处理的自定义函数
workbook.addCustomFunction(new MyFunctionWithAcceptErrors("MyFuncCanAcceptErrors", true));
// 传入错误值(1/0 会返回 #DIV/0!)
worksheet.getRange("B3").setFormula("=MyFuncCanAcceptErrors(1, 2, 1/0)");
// 函数内可捕获错误并返回提示:"Exist errors: #Div0"
(2)Java 端日志监控(基于 Apache Commons Logging)
新增可配置日志系统,支持集成 Log4j、Logback 等主流日志组件,实时监控 GcExcel 运行状态:
- 日志级别:DEBUG(调试)、INFO(信息)、WARN(警告)、ERROR(错误);
- 监控内容:文件加载进度、公式计算耗时、PDF 分页信息等,快速定位线上问题。
日志示例:
服务端 PDF 组件 GrapeCity Documents for PDF 更新说明
GcPDF 作为“高性能 PDF 处理组件”,V8.0 Update2 重磅推出 GcPdf AI 包,集成 AI 大模型能力,实现 PDF 文档的“智能摘要、结构化大纲、表格提取”,将开发者从繁琐的 PDF 解析工作中解放出来。
1、生成文档摘要:快速掌握核心内容
针对长篇 PDF 文档(如学术报告、行业白皮书、合同),AI 可自动生成“简短摘要”或“详细摘要”,提取关键信息(研究结论、核心条款、数据亮点),节省阅读时间。
示例:学术报告摘要生成
输入 50 页的《全球生物多样性损失报告》,AI 生成的摘要包含:
- 研究机构:瑞士联邦水生科学技术研究所(Eawag)、苏黎世大学;
- 核心数据:分析全球近 10 万个站点,受人类影响的区域物种多样性平均减少 20%;
- 关键结论:爬行动物、两栖动物、哺乳动物受影响最严重,主要驱动因素为栖息地变化、污染等。
2、构建文档大纲树:结构化梳理内容
自动识别 PDF 中的标题层级(如“1 引言”“1.1 研究背景”),生成嵌套式大纲树,支持:
- 快速导航:点击大纲节点跳转至对应页面;
- 内容规整:将无结构的扫描件 PDF(需先 OCR 处理)转化为结构化目录,提升可读性。
示例:租赁合同大纲生成
AI 自动识别合同中的“承租人信息、租赁标的、租赁期限、付款方式、违约责任”等章节,生成层级大纲,便于法务快速定位关键条款。
3、提取表格数据:自然语言驱动的智能识别
通过自然语言提示(如“提取第 3 章‘3.1 Record’中的表格”),AI 可自动识别 PDF 中的表格(包括复杂嵌套表格、合并单元格表格),提取为结构化数据(如 JSON、DataTable),无需手动解析坐标或文本位置。
示例:技术文档表格提取
输入包含 RGDI 流结构的 PDF 文档,提示“提取‘3.1 Record’章节的表格”,AI 可准确识别“Offset(偏移量)、Length(长度)、Field(字段)、Value(值)”等列,输出可直接用于数据库导入的结构化数据。
服务端 Word 组件 GrapeCity Documents for Word 更新说明
GcWord 专注于“后端生成、编辑 Word 文档”,V8.0 Update2 聚焦法律文档构建、模板管理两大场景,新增权威文献表(TOA)字段控制、模板标签检索等功能,满足专业文档的精细化处理需求。
1、全面控制 TOA/TA 字段,适配法律文档场景
法律、学术文档中常需插入“权威文献表(TOA)”和“权威文献条目(TA)”,V8.0 Update2 提供完整 API 支持,实现 TOA/TA 字段的全生命周期管理:
- ToaFieldOptions 类:读取/修改 TOA 字段选项(如包含的条目类别、页码显示方式);
- ToaPageNumberOptions 类:控制页码格式(如是否显示“第 X 页”“X-Y 页”);
- TaFieldOptions 类:定义单个 TA 条目(文本、页码、引用范围);
- CitationCategoryMap 类:检索引文类别名称,确保分类准确性。
示例:构建法律文档的权威文献表
2、模板标签检索:简化报表与数据验证
支持通过
DataTemplate.GetTemplateTagInfos()
方法,检索 Word
模板中定义的所有模板标签(如
{{CustomerName}} {{OrderAmount}}
),返回包含“标签名称、类型、范围、文本”的
TemplateTagInfo
对象列表,可用于:
- 报表生成:批量获取占位符,自动匹配数据源字段;
- 数据验证:检查标签是否完整,避免生成空白文档;
- 权限管理:基于标签控制编辑权限(如仅允许修改 {{Amount}} 标签)。
3、PDF 导出标签标记:助力审核与无障碍
将 Word 文档导出为 PDF 时,可通过设置
WordLayoutSettings.MarkTemplateTagAreas = true
记录模板标签位置,再用 PdfOutputSettings.MarkupTemplateTags
委托添加自定义标记(如黄色高亮、注释),便于:
- 审核追溯:快速定位 PDF 中的动态填充内容;
- 无障碍阅读:屏幕阅读器识别标签含义,提升可访问性。
历史版本
查看更多关于 GrapeCity Documents 服务端表格组件的历史版本。