GcExcel V8.0 新版本特性丰富,包括:数据导入方面,可从多种数据源(如自定义对象、DataTable 等)导入,为 IRange.ImportData (..) 新增重载;假设分析上,通过 IWorksheet.Scenarios 接口支持 “方案” 功能,可进行多种操作且受保护工作表也能编辑;数据透视表能绑定表格数据源,IPivotCaches.Create 支持传 ITable 参数,新增管理 API 并支持时间线切片器;其他特性有可用多种字符串格式设颜色,页眉页脚支持页码计算运算符,导出 PDF 和图像支持图案填充。SpreadJS 功能兼容方面,自动合并单元格有新 API 可检索、添加自动合并信息;迷你图导出扩展 IMAGE 函数支持图像迷你图参数;单元格装饰支持相关功能,IRange 接口有新属性;绑定数据选项新增 IncludeBindingSource 属性控制绑定数据导出 。

GcPDF V8.0 新版本特性为:优化 PDF 文档体积,通过优化对象流处理方式和新的 SavePdfOptions 类控制保存,可减小文件大小、提高效率;优化字体格式,添加 PdfFontFormat 属性设置字体格式编码类型;导出图像时可通过 SaveAsImageOptions 的 DrawAnnotationFilter 属性控制包含注释;编辑时可通过 RedactOptions 类的 CopyImagesOnRedact 属性控制图像编辑行为。

GcWord V8.0 新版本增强了动态占位符功能,增加对 PAGE、PAGEREF 等字段的支持和更新,各字段有对应...FieldOptions 类可访问参数和修饰符,FieldFormatOptions 类支持格式化属性,可使用新方法更新字段。

GcExcel V8.0 新版本特性

  1. 数据导入:可从多种数据源(如自定义对象、DataTable 等)导入,为IRange.ImportData(..)新增重载。
  2. 假设分析:通过IWorksheet.Scenarios接口支持 “方案” 功能,可创建、管理方案,受保护工作表也能编辑。
  3. 数据透视表:能绑定表格数据源,IPivotCaches.Create支持传ITable参数;新增管理 API,支持时间线切片器。
  4. 其他:可用多种字符串格式设颜色;页眉页脚支持页码计算运算符;导出 PDF 和图像支持图案填充。
  5. SpreadJS 功能兼容:
  • 自动合并单元格:新 API 可检索、添加自动合并信息。
  • 迷你图导出:扩展IMAGE函数支持图像迷你图参数。
  • 单元格装饰:支持相关功能,IRange接口有新属性。
  • 绑定数据选项:保存选项中新增IncludeBindingSource属性控制绑定数据导出。

从对象集合和数据表导入数据

在商业应用程序中以编程方式处理 Excel 工作表时,一项常见任务是从不同数据源导入数据,比如 C#/.NET/Java 中的类和对象、关系数据库、.NET 控件等。在 V8.0 版本中,增加了从以下类型数据源导入数据的功能:

  • 简单可枚举对象、二维数组(仅适用于.NET)、多维数组
  • 交错数组、自定义对象、弱类型集合中的自定义对象
  • 带有自定义列的自定义对象、未知类型自定义对象的数据
  • 动态对象、DataTable 或 DataView(仅适用于.NET)
  • 选定的数据列、LINQ 结果(仅适用于.NET)

为 IRange.ImportData (..) 方法添加了新的重载,现在可以将数据源中的数据导入到指定区域。以下重载方法根据数据源来接收参数:

  • ImportData (IEnumerable, DataImportOptions) 方法:从数据源将数据导入到指定区域。
  • ImportData (DataTable, DataImportOptions) 方法:从数据表将数据导入到指定区域。

DataImportOptions 参数是一个枚举类型,用于提供处理数据的选项。

在假设分析(What-If)中添加和管理方案

Excel 电子表格中的假设分析是一项强大功能,它能让用户探究某些输入值的变化如何影响工作表中公式的计算结果。在做出关键决策前,这项功能对于预测、规划以及测试不同可能性尤其有用。在上一个版本中,引入了以编程方式向电子表格添加 “单变量求解”(假设分析工具之一)的功能。

为了继续支持在电子表格中添加假设分析,最新版本支持 “方案” 功能。在 Excel 中,方案是为特定单元格保存的一组输入值。通过在不同方案之间切换,你可以查看某些单元格的变化如何影响工作表中的计算结果。

  • 新的 IWorksheet.Scenarios 接口有助于在 Excel 电子表格中创建和管理方案。
  • 以编程方式应用 / 显示方案:可变单元格的值将应用到工作表中,引用可变单元格的公式将重新计算。
  • 删除方案
  • 获取方案的可变单元格
  • 获取可变单元格的值
  • 更改 / 修改方案:为其设置一组新的可变单元格和方案值。
  • 锁定方案:防止其他用户修改它。
  • 隐藏方案:使某些方案仅对部分用户可见,对其他用户隐藏。

在受保护的工作表上编辑方案:当工作表受到保护时,此功能仍然有效,DsExcel 不会添加额外限制。用户可以根据 IProtectionSettings.AllowEditingScenarios 和 IWorksheet.Protection 属性自定义操作。

将数据透视表直接绑定到表格作为数据源

  • 为了最大化数据透视表的有效性和灵活性,需要将其绑定到表格。在处理动态或扩展数据集时,这一点至关重要,因为无需手动更新数据透视表的数据区域。
  • 此外,当数据位于表格中时,每列都有定义好的标题,因此数据透视表可以自动使用这些列名来配置数据透视表字段。
  • IPivotCaches.Create (object) 方法现在支持将 ITable 作为参数传递。只需定义好表格,并在创建 IPivotCache 对象时将其作为参数传递即可。

以多种字符串格式设置颜色

  • 在新版本中,可以使用主题颜色、标准颜色或自定义颜色来自定义单元格、单元格边框、选项卡等的外观。为了应用这些颜色,新版本添加了新的 ColorUtilities 类的 StringToColor 方法。
  • 这个 API 有助于使用多种字符串格式添加标准颜色和自定义颜色,包括:
  • 颜色名称:预定义的标准颜色名称。例如:"red"。
  • RGB:rgb (r,g,b)。例如:"rgb (255,0,0)" 表示红色。
  • RGBA:rgba (r,g,b,a)。例如:"rgba (255,0,0,0.5)" 表示透明度为 50% 的红色。
  • 十六进制:#RGB 或 #RRGGBB。例如:"#F00" 或 "#FF0000" 表示红色。
  • 带透明度的十六进制:#RGBA 或 #RRGGBBAA。例如:"#F00C" 或 "#FF0000CC" 表示透明度为 90% 的红色。

支持页码计算运算符

  • 新版本现在支持在工作表的页眉和页脚中,对页码和总页数使用 “+” 和 “-” 运算符,无论是导出为 PDF 还是通过物理打印机打印。对于所有遵循 IWorksheet.PageSetup 属性中自定义页眉和页脚的分页输出,此功能均可用。

  • 在将多个工作簿作为单个报告打印时,可以根据需要调整页码或总页数(进行加或减操作)。查看以下示例,了解如何将页码和总页数都增加 1。

管理数据透视表的新 API

新版本中支持的数据透视表功能通过新的 API 选项得到了增强:

  • HasAutoFormat:在更新数据透视表时,允许自动调整列宽。
  • RefreshOnFileOpen:控制打开文件时数据透视表是否应刷新数据透视缓存,以确保信息是最新的。
  • ShowPivotTableFieldList:控制是否显示数据透视表字段列表。

这些新增功能通过简化数据管理和增强显示选项,使以编程方式处理数据透视表更加强大。

支持数据透视表时间线切片器

时间线切片器是一种交互式筛选器,能够按日期、月份、季度或年份快速筛选数据。在 v8 版本中,新版本支持此功能的数据处理和输入 / 输出(xlsx、sjs、json)。

以下代码展示了加载和保存包含时间线切片器的 xlsx 文件的操作:

导出为 PDF 时支持图案填充

现在导出为 PDF 和图像时,支持对单元格、图表和形状进行图案填充

SpreadJS 功能兼容 - 自动合并单元格

SpreadJS 包含自动合并单元格功能,可自动合并相邻且文本重复的单元格。应用户要求,GcExcel 现在也添加了新的 API 来支持此功能:

  • IWorksheet.AutoMergeRangesInfo 属性可以检索当前工作表中所有自动合并区域的信息。
  • IWorksheet.AutoMerge (IRange range, AutoMergeDirection direction = AutoMergeDirection.Column, AutoMergeMode mode = AutoMergeMode.Free, AutoMergeSelectionMode selectionMode = AutoMergeSelectionMode.Source) 方法可以为指定区域添加自动合并信息。
  • 上述方法中的 AutoMergeMode 枚举支持两种模式:自由模式(Free mode)和受限模式(Restricted mode)

AutoMergeDirection 枚举支持行方向、列方向、列行方向、行列方向和无方向。

API 还添加了 IncludeAutoMergedCells 属性,在导出为 PDF/HTML/Image/Excel/SJS/JSON 时,需要将其设置为 true。

以下代码在保存为 xlsx 文件时,将自动合并的单元格保存为普通合并单元格

SpreadJS 功能兼容 - 迷你图导出

在 SpreadJS 中,图像迷你图功能是对图像公式的增强,它能够显示不同大小的图像,因此与 Excel 的图像公式相比,可以接受更多图像参数。此外,SpreadJS 的图像迷你图功能接受 base64 字符串作为参数来定义图像源。

GcExcel V8.0 版本扩展了 V7.2 中支持的 IMAGE 函数的功能,增加了对 SpreadJS 图像迷你图参数的支持。

以下代码使用传递给 IMAGE 函数的新参数添加图像迷你图。第一段代码对图像进行裁剪,第二段代码以原始大小添加图像

SpreadJS 功能兼容 - 支持单元格装饰

在新版本中,支持 SpreadJS 的单元格装饰功能。该 API 有助于管理单元格装饰,包括在单元格中添加、删除和替换单元格装饰的操作

IRange 接口中新增了 ICellDecoration.Decoration 属性,用于设置单元格装饰属性

此外,CornerFold 和 CellDecorationIcon 类分别用于添加单元格装饰的角折和图标

SpreadJS 功能兼容 - 包含/排除:绑定数据的选项

新版本在 SjsSaveOptions、XlsxSaveOptions 和 SerializationOptions 中添加了一个新属性 IncludeBindingSource,用于控制在导出为 SJS、SSJSON 和 XLSX 文件时,是否将绑定数据导出到文件中。该选项默认设置为 True。

以下代码展示了在使用 SjsSaveOptions 保存为.sjs 文件时,如何应用此属性:

这使得 SpreadJS 能够显示 GcExcel 在后端计算的最终结果,无需在前端重新计算,避免了大量数据传输。因此,SpreadJS 在前端的加载速度更快。

GcPDF V8.0 新版本特性

优化 PDF 文档体积

为优化 PDF 文件的加载和保存性能,以及减小生成的 PDF 文件大小,进行了多项改进。其中一项改进是优化了处理对象流的方式。

新的 SavePdfOptions 类让你能够精确控制代码,以最适合应用程序的方式保存 PDF,该类的实例可传递给 GcPdfDocument.Save ()、Sign () 和 TimeStamp () 方法。使用对象流(PDF 1.5)保存 PDF,可通过合并对象来减小文件大小、缩短加载时间并提高压缩效率,使文档处理更加快速和高效。

以下定义了这些属性的功能:

  • UseObjectStreams - 定义在保存 PDF 文档时,如何使用各种枚举选项来处理对象流。
  • PdfStreamHandling - 定义如何处理加载文档中现有的 PDF 流。

以下代码有助于最小化 PDF 文档的大小:

优化字体格式

在新版本中,还为 GcPdfDocument 和 FontHandler 类添加了 PdfFontFormat 属性,允许用户为 PDF 文档中表示字体的字体格式设置编码类型。

PdfFontFormat 枚举提供了以下定义编码类型的选项:

  • Type0AutoOneByteEncoding - 将字体保存为一个或多个 Type0 PDF 字体,每个字符用一个字节编码。
  • Type0IdentityEncoding - 将字体保存为单个采用 Identity 编码的 Type0 字体,每个字符用两个字节编码。

GcPdf 默认使用单字节编码格式,即 Type0AutoOneByteEncoding,在大多数情况下可生成更小的 PDF 内容。

导出图像时包含 / 排除注释或表单字段

新版本中,在将 PDF 导出为图像时,可以精确控制要包含的注释。

SaveAsImageOptions 的新 DrawAnnotationFilter 属性可以调用一个委托,根据注释或表单字段的类型来检查是否渲染它们。以下代码可实现此功能:

编辑时保留图像

如果图像的一部分被编辑,该图像会被编辑后的版本替换。然而,如果同一图像在多个位置出现,你可能希望对所有图像实例进行编辑,或者仅对编辑位置的图像实例进行编辑。现在,你可以通过 RedactOptions 类中的新 CopyImagesOnRedact 属性来控制此行为,该属性指示在应用编辑之前,是否复制编辑区域内且在其他位置也出现的图像。设置为 True 时,仅编辑区域内的图像实例会被修改,其他位置的图像保持不变。设置为 false 时,文档中所有该图像的实例都会受到编辑的影响。默认值为 False。

以下代码仅在一个位置编辑图像,但其他位置的相同图像将被保留:

GcWord V8.0 新版本特性

增强功能:动态占位符

Microsoft Word 中的字段是数据的动态占位符,可以根据特定条件自动更新,无需手动更新,有助于创建格式一致的专业文档。字段不仅可用于显示动态数据,还可以通过调整其参数(arguments)和修饰符(switches)来进行自定义和控制,从而修改其行为和输出。

在新版本中,增加了对以下字段的支持和更新:

  • PAGE - PAGE 字段用于获取当前页面的页码。
  • PAGEREF - PAGEREF 字段用于插入包含交叉引用书签的页面的页码。
  • SECTION - SECTION 字段用于获取当前节的编号。
  • SECTIONPAGES - SECTIONPAGES 字段用于获取当前页面在当前节内的页码。
  • SEQ - SEQ 字段用于对文档中的章节、表格、图表和其他用户定义的项目列表进行顺序编号。
  • TC - TC 字段用于定义目录(包括图表目录)条目的文本和页码,TOC 字段会使用这些信息。
  • TOC - TOC 字段根据 TC 字段指定的条目、标题级别、指定样式构建目录(也可以是图表目录),并将该目录插入到文档中的此位置。

上述每个字段在 GrapeCity.Documents.Word.Fields 命名空间中都有一个对应的...FieldOptions 类,通过该类可以强类型访问来读取和写入特定字段类型的参数和修饰符。FieldFormatOptions 类是...FieldOptions 类的基类,支持格式化属性。

要更新(重新计算)字段,可以使用新的 GcWordDocument.UpdateFields () 方法,或特定字段上的 Update () 方法。这样可以在 DOCX 文档中,或导出为 PDF 或图像时,包含更新后的字段结果。

点击上述每个字段的链接,可查看每个字段类型的详细 API。

以下代码使用 TocFieldOptions 类在 Word 文档的第二页添加目录:

点击这里体验Demo

GrapeCity Documents V8.0 新版本特性的更多相关文章

  1. 小酌Jmeter4.0新版本特性

    1.  首先下载打开jmeter4.0,说一个能感受到的视觉变化,如图, 黑色界面,不少朋友认为做技术黑色的东西看起来高上大一点,虽然这个观念有点肤浅,但似乎也有点道理,毕竟还是有不少朋友热衷于lin ...

  2. GrapeCity Documents (服务端文档API组件) V3.0 正式发布

    近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...

  3. GrapeCity Documents for Excel 文档API组件 V2.2 新特性介绍

    GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF.控制分页和电子表格内容.将Ex ...

  4. Visual Studio 2015速递(1)——C#6.0新特性怎么用

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  5. [C#]6.0新特性浅谈

    原文:[C#]6.0新特性浅谈 C#6.0出来也有很长一段时间了,虽然新的特性和语法趋于稳定,但是对于大多数程序猿来说,想在工作中用上C#6.0估计还得等上不短的一段时间.所以现在再来聊一聊新版本带来 ...

  6. 【servlet3.0新特性】Annotation注解配置

    servlet3.0新特性Servlet3.0引入的若干重要新特性,包括异步处理.新增的注解支持.可插性支持等等,为读者顺利向新版本过渡扫清障碍.Servlet3.0新特性概述Servlet3.0作为 ...

  7. Android 6.0 新特性 整理 资料来自网络

    Android 6.0新特性 Runtime Permissions Doze and App Standby Apache HTTP Client Removal BoringSSL Access ...

  8. 2019 年 GrapeCity Documents 产品路线图

    前言 | 问题背景 随着软件行业引入新的硬件和操作系统,我们看到更多的托管框架与.NET技术保持同步.Microsoft的.NET Standard和.NET Core定义了一个跨平台规范,为应用程序 ...

  9. webpack 4.0.0-beta.0 新特性介绍

    webpack 可以看做是模块打包机.它做的事情是:分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式 ...

  10. Spring Boot 2(一):Spring Boot 2.0新特性

    Spring Boot 2(一):Spring Boot 2.0新特性 Spring Boot依赖于Spring,而Spring Cloud又依赖于Spring Boot,因此Spring Boot2 ...

随机推荐

  1. TNN编译及使用

    要使用 CMake 和 TNN 库基于 C++ 实现神经网络模型的推理预测,你需要按照以下步骤进行操作: 准备环境 确保已安装 CMake 和 C++ 编译器.并从 TNN 的 GitHub 仓库下载 ...

  2. 在jooq的POJO类中使用Lombok的Data注解

    jooq生成pojo类的配置根据官方给的如下: https://www.jooq.org/doc/3.14/manual/getting-started/tutorials/jooq-in-7-ste ...

  3. tmux中的vim无法多彩高亮显示关键字

    1. 问题描述 vim安装了interastingwords插件,在mobaxterm中的session可以正常显示多彩关键字,但是使用tmux登录session,只能显示两个颜色 2. 解决办法 这 ...

  4. DeepSeek V3 两周使用总结

    2024 年 12 月 26 日,杭州深度求索人工智能基础技术研究有限公司发布 DeepSeek-V3 大模型.官方宣称:(1)基于自研的 MoE 模型和 671B 参数,在 14.8T token ...

  5. RocketMQ原理—3.源码设计简单分析下

    大纲 1.Producer作为生产者是如何创建出来的 2.Producer启动时是如何准备好相关资源的 3.Producer是如何从拉取Topic元数据的 4.Producer是如何选择Message ...

  6. 小程序uni-app处理input框将页面往上推动的解决办法

    1. view <view class="bottom-wri-box" :style="{bottom: bottomHeight}"> < ...

  7. 在SOUI4中使用非客户区自绘

    前段时间用sdl嵌入SOUI做视频播放器,由于SOUI习惯屏蔽系统默认的非客户区,而在窗口自己的客户区分出一块来模拟非客户区,导致窗口在拉伸的时候,SOUI窗口会出现比较严重的闪烁(不光是SOUI这样 ...

  8. 内容分发网络 CDN 概述

    本文分享自天翼云开发者社区<内容分发网络 CDN 概述>,作者:Jerry CDN(Content Delivery Network)是一种分布式网络架构,旨在提供高效.可靠地将内容传送给 ...

  9. shell 条件语句基础练习

    #输出1到15数字 #!/bin/bash for i in `seq 1 15` do echo -e "\033[32m$i\033[0m" done #计算1到100数字之和 ...

  10. Linux目录管理命令

    1. pwd :显示当前所在目录的路径 1.1 语法格式 pwd #直接按回车键 1.2 实践案例 案例:查看当前所在目录路径 [root@yyds ~]# pwd /root --->显示的是 ...