GrapeCity Documents for Excel V3.0 更新内容

一、使用模板,创建 Excel 报表更加简单

借助模板,开发人员无需从零设计复杂的 Excel 报表,并可直接绑定来自其他数据源的数据。GcExcel 的模板引入了完整的语法、数据扩展符、Excel 公式支持和 API,可用于生成具备交互式分析,以及数据绑定的类 Excel 报表。

通过 GcExcel 的 API 可以直接将设计好的报表文件保存为 .xlsx 格式或 PDF。

在模板的任何位置,都可以使用动态字段替换需要显示的信息,如使用 Workbook.AddDatasource()方法在工作簿中绑定数据源,结合 Workbook.ProcessTemplate()方法,自动匹配数据库字段,并替换为实际数据。

基于 Visual Studio Tools for Office(VSTO)的 Excel API 和模板支持,您可以生成更加完整且专业的 Excel 报表,用来分析数据和分发。

GcExcel 的模板功能可在任何平台上正常运行:Windows、Linux 或 macOS。

GcExcel 可用于设计以下报表类型:

  • 行报表(Line reports)
  • 邮件合并报表(Mail-merge reports)
  • 交叉表(Cross-table reports)
  • 主子表(Multiple reports in one report)
  • 矩表(Tablix reports)
  • 收据(Receipt reports)
  • 销售报告(Sales reports)
  • 采购订单(Purchase order reports)
  • 发票(Invoice reports)
  • ……

为了合理的控制项目预算,采购订单的应用场景十分常见,它可以清楚地传达待采购项目、协议、价格和数量。采购订单通常以 Excel 电子表格或 PDF 的形式发送。

由于采购订单每天都会产生,因此一个自动化的管理流程尤为重要,许多公司都会采用从数据库中动态获取供应商和发货信息的方式,生成不同的采购订单。

生成采购订单的Excel电子表格

(生成采购订单的Excel电子表格)

使用以下代码,数据字段将自动绑定以生成最终采购订单。

                            Workbook reportBook=new Workbook(); reportBook.Open("template.xlsx"); /*Code to add the data table*/ reportBook.AddDataSource("exp", dt); reportBook.ProcessTemplate(); reportBook.Save("PurchaseOrder.xlsx"); reportBook.Save("PurchaseOrder.pdf");
                        

GcExcel 模板支持多种高级功能,可以创建从简单到复杂、满足不同业务场景的报表:

  • 支持简单的语法
  • 可定义数据扩展方向
  • 可定义用于数据扩展的上下文
  • 可定义数据范围
  • 支持从多个数据源中添加数据
  • 支持分组数据
  • 支持大纲组
  • 可指定嵌套的数据字段
  • 可定义公式函数
  • 可定义排序表达式
  • 可定义表达式字段
  • 自定义样式
  • 支持在一个工作表中插入多个报表
  • 支持添加分页符
  • 可设置内联字段
  • 可在工作表的名称中添加模板字段以生成多张工作表

二、支持将具有图表的 Excel 电子表格转换为 PDF

图表是 Excel 电子表格中的重要功能之一。财务、销售、市场营销和医疗保健等的大多数 Excel 文档都会使用 Excel 图表分析、提取和汇总数据。

GcExcel 可以将包含柱形图、折线图、饼图、条形图、面积图、XYScatter 图、股票图、雷达图和组合图等图表的 Excel 文档转换为 PDF。

生成采购订单的Excel电子表格

注意:目前,此功能仅支持在 GcExcel 的 .NET Edition 中使用。

三、支持将具有切片器的 Excel 电子表格转换为 PDF

Slicers(切片器)是一种快速有效的数据过滤方法,通过易于使用的可视化过滤器,用户可以快速过滤表格和数据透视表中的数据。在GcExcel 中,支持将具有切片器的 Excel 电子表格转换为PDF。

四、新的 Excel 2016 图表类型

在 GcExcel 最新版本中,支持将 Excel 2016 的图表类型添加到 Excel 文件的功能。使用这项功能,可有效提升 Excel 的数据可视化效果,比传统图表更容易展现并分析数据结构。

GcExcel 为这些图表增加了很多个性化功能,带来了比传统的 MS Excel 图表更专业的分析方式。

如需使用新的图表类型,请将 ChartType 属性设置为所需的图表,配置图表属性,数据将在首选图表中进行展示。

树状图

对于分层数据来说,树形图是最理想的数据可视化选择。
树状图将层次信息显示为大小和颜色不同的矩形簇,而其大小和颜色取决于它们的数据值。其中,每个类别都被分配了一个矩形区域,其子类别矩形嵌套在父类别中。

下面的图表是使用 GcExcel 创建的,在这个示例中,每个销售人员的月销售额一目了然。如果将鼠标悬停在任何矩形上,将显示每个销售员的具体销售额。

旭日图

与树形图类似,旭日图也同样用来显示数据的层次结构,以及比较数据相对大小。此外,树形图还可显示父组和子组之间的链接。层次结构的每个级别由一个圆环或一个圆圈表示,越里面的圆圈表示数据的层级越高。
使用 GcExcel,您可以创建如下图所示的图表。该图表的数据源与上面的“树形图”图表相同,但以环形排列,最里面的环形显示“四分之一”,下一个环形显示月份,外环显示销售人员的姓名。如果将鼠标悬停在外圈的切片上,则显示每个销售人员的销售量。

直方图和帕累托图

直方图通过以图形的方式汇总不同时间间隔的大型数据集,有助于快速决策。直方图是显示频率数据的柱状图,每列表示一定范围内元素的频率。
帕累托或排序后的直方图图表包含以降序排序的列和代表累计总百分比的行。使用 GcExcel 中的直方图图表类型,您可以创建直方图和帕累托图。
下面的示例显示班级学生身高的频率分布。

箱形图

箱形图又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况的统计图,突出显示均值和离群值,其中垂直延伸的线,又称为“须”。
这些线表示上四分位数和下四分位数之外的可变性,这些线或须之外的任何点都被视为离群值。

使用 GcExcel,您可以通过 Axis 和 Series 属性来设置箱形图图表,例如 ShowInnerPoints,ShowOutlierPoints,ShowMeanMarkers,ShowMeanLine 和 QuartileCalculationInclusiveMedian。

瀑布图

瀑布图也被称为 Excel 桥梁图,可用于分析数据差异。
使用瀑布图可以评估公司的利润或收益,或者分析公司的销售或库存数据,因为它显示了初始值受到负值或正值的影响。列采用颜色编码,可以快速看到正值和负值之间的差异性。
以下是使用 GcExcel 创建的瀑布图图表,显示了公司的利润分析。如果将堆积柱形图图表模板应用于这些特定值,则不会获得与瀑布图相似的结果。

漏斗图

漏斗图使用户可以快速可视化线性过程中的阶段变化。
漏斗图用于显示销售过程时,可以迅速定位潜在的问题区域。漏斗由称为头部(或底部)的较高部分组成,而下部称为颈部,显示的值按比例递减,总计为100%。
下图显示了公司一年中的订单履行评估。

五、保存为 PDF 时,支持安全选项

安全选项在 PDF 文档中的使用情况十分普遍,而这也是 PDF 格式受欢迎的原因之一。

通过设置安全选项,保证敏感信息无法共享或修改。现在,用户可以通过调用 PdfSaveOptions.SecurityOptions 方法设置这些选项,然后使用 GCExcel 将文档转换为 PDF。

安全选项包含:

  • 所有者密码
  • 用户密码
  • 印刷许可
  • 填写表格权限

六、保存为 PDF 时,支持文档属性

长期归档文档时,会为 PDF 文件定义某些文档属性(例如,创建者、标题、作者、创建日期等)。这些属性提供了有关文档的其他描述,在搜索文档时特别有用。

在 GCExcel 中,将 Excel 电子表格保存为 PDF 时,可以通过 PdfSaveOptions.DocumentProperties 方法插入文档属性,包含:

  • PDF 版本
  • EmbedStandardWindowsFonts
  • 标题
  • 作者
  • 学科
  • 关键词
  • 创作者
  • 制片人
  • 创立日期
  • 修改日期

七、保护工作簿

此功能可以保护工作簿免于使用 IWorkbook.Protect()方法进行修改。

GCExcel 提供的保护操作有:

  • 查看隐藏的工作表
  • 添加、移动、删除、隐藏或重命名工作表
  • 调整或关闭工作簿窗口的大小以及隐藏/取消隐藏窗口

同时,使用 IWorkbook.Unprotect()方法,也可用于从工作簿中删除保护。

.NET 平台帮助文档 | .NET 平台示例 | Java 平台帮助文档 | Java 平台示例

八、图表表单

有时,当您将所有数据和图表容纳在一张纸上时,您的空间可能不足,通过使用 GCExcel 的图表工作表选项,您可以将图表移动到自己的工作表中。此选项可帮助用户添加仅包含图表的工作表,这一点在打印时也很有用,可以用来更改页面方向,以便更详细的阅读图表内容。

GCExcel 的图表表单支持以下功能:

  • 添加带有主图表的图表
  • 可为主图表添加自定义形状,包括形状样式、图表、图片、连接器
  • 为主图表或自定义形状创建副本
  • 从图表中删除主图表,或从主图表中删除自定义形状
  • 复制并移动图表

注意:请使用 IWorksheets.Add(SheetType.Chart)创建图表。

.NET 平台帮助文档 | .NET 平台示例 | Java 平台帮助文档 | Java 平台示例

九、更多形状特性:插入超链接、分组/取消分组形状

除了将形状添加到 Excel 文件之外,使用 GCExcel 还可以向形状添加不同的功能,如下所示:

  • 将超链接添加到形状:形状上插入超链接对于将形状链接到网页、外部文件以及文档或电子邮件时非常有用。使用 GcExcel,您可以将超链接插入到形状、图表、连接器、图片和组合形状中。
  • 支持分组、取消分组形状:分组形状是 Excel 的一项标准功能,主要应用于流程图中。形状分组有助于一次将形状属性应用于整个组。您可以使用 GcExcel 的 API 对特定范围内的形状、图片或任何其他对象进行分组/取消分组操作。

十、计算大纲小计

GcExcel 的 API 添加了类似 MS Excel 的功能:计算大纲小计。此功能有助于避免手动处理组和小计的值。

您可以通过定义简单的参数自动将重复数据分组并计算小计。通常来说,用户习惯于优先创建组功能,然后通过代码在特定位置添加小计字段。使用 GcExcel,当出现带有排序列的平面数据时,便会自动创建组,并在排序列上计算小计,以添加到工作表的单元格中。

使用单个 IRange.Subtotal 方法并传入一些简单的参数即可完成上述操作。例如,指定按字段分组、小计功能、在小计方法中应用小计的字段列表等。

此外,您还可以通过编程的方式替换现有的小计结果,在每个小计之后添加分页符以控制 Excel 电子表格的布局,并在小计字段下方指定汇总位置行。

用户还可以控制从现有的工作表中删除小计。

下面的示例是使用图片中的选项,来创建范围“ A1:C9”的小计:

_worksheet.Range["$A$1:$C$9"].Subtotal(2, ConsolidationFunction.Count, new[] { 2 });

该代码的运行结果为:

十一、获取公式单元格的引用和依存关系

GcExcel 的公式可以应用于特定的单元格,或引用某个单元格范围。以下两个新的 API 可以帮助用户检索单元格引用范围和其影响的单元格公式。

  • 使用IRange.GetPrecedents(),获取当前区域的左上角单元格所依赖的所有内容
  • 使用IRange.GetDependents(),获取依赖于当前区域的左上角单元格的所有内容

十二、形状调整

可以使用 GcExcel 的 IShape.Adjustments API 来调整形状,可以针对整个形状进行统一更改。

十三、支持将表的背景图像转换为 PDF

在背景图像的支持下,您可以将公司徽标、水印或其他任何与工作表数据相关的背景图像插入到工作表中。

现在,用户可以选择将 Excel 电子表格转换为 PDF 时是否包含背景图像,通过简单的布尔属性 PdfSaveOptions.PrintBackgroundPicture 即可实现。

十四、将具有多个图像的 Excel 文件导出为更小尺寸的 PDF

引入此功能的目的是使 GcExcel 在处理带有多张图片的 Excel 文件时更加高效。

如果在 Excel 文件中多次使用某张图片,则 GcExcel 在导出 PDF 时将只保留该图片的一个副本,以减小文件大小。

十五、支持纯前端表格控件 SpreadJS 的功能

为了更好地与纯前端表格控件 SpreadJS 产品集成,本次更新,在 GcExcel API 中添加了如下属性。

现在,您可以创建 Excel 文档并直接应用这些属性,当然,执行导入/导出 SSJSON 时,也支持这些功能。

添加单元格标签

Tag 属性可以附加到电子表格的单元格/行/列/工作表中,其中包含特定种类的数据,以及与该数据相关的选项和建议。您还可以实现从 SSJSON 导入/导出时,带有简单数据标签。

添加单元格类型

单元格类型定义了单元格中数据的类型、显示方式以及如何与用户交互。

Excel 具备了多种单元格类型:数字、复选框(三种状态)、按钮、组合框和超链接等。

在 GcExcel 中,也同样支持如下单元格类型:复选框、按钮、超链接和组合框,它们可以设置为某一单元格或区域范围,还可以使用 IRange.CellType API 来检索这些单元格或范围的类型。

将 Excel 文件导出为 PDF 时,支持最佳拟合列/行的 API

如果文本的宽度或高度太长而无法容纳在单元格内,则在将 Excel 电子表格导出为 PDF 时,可以通过 IPageSetup.BestFitColumns 或 IPageSetup.BestFitRows API 帮助调整列宽或行高。

GrapeCity Documents for PDF V3.0 更新内容

将 HTML 内容转换为 PDF 文档

将 HTML 内容转换为 PDF 的好处是,如果用户要将网页内容保存至本地(或尝试直接打印),可能会受到以下限制:

  • 页面的CSS样式无法得到呈现
  • 背景图像会丢失
  • 打印时页面的布局和流向不可控制

什么时候需要将 HTML 转换为 PDF?

场景之一:电子商务网站在网页购物车中显示客户的发票信息,并在订单中执行打印。如果直接将客户的订单信息以 HTML 的格式,传递给打印机或与客户共享,客户的隐私信息则很可能遭受篡改和泄露。此外,HTML 的格式不利于在离线方式下查看,因为它不支持离线布局和样式。

因此,PDF 格式是查看和文档共享的首选。
PDF 格式可以以最安全可靠的方式查看离线 Web 内容,且无论在何种平台或设备下,文档格式都会被保留。
开发人员使用 GcPDF 开发此类应用程序时,将受益于 HTML 内容转换为 PDF 的 API。

使用 GcPDF 组件,完成从 HTML 到 PDF 的转换

现在,您可以使用 GcPDF 中的 HTML 组件,将 HTML 内容转换为 PDF。它是一个独立于平台的文档 API 组件,可让您将 HTML 内容转换为 PDF 的文档或图像(PNG 或 JPEG)。

GcPDF 提供了一组用来绘制或测量 HTML 内容的方法:DrawHtml()和 MeasureHtml(),它允许将 HTML 片段与其他内容一起插入 PDF 文档中。

注:GrapeCity.Documents.Html 包含了GcHtmlRenderer 类,该类可以在 PDF Pages 中呈现 HTML 内容。

GcPDF 根据系统的不同,内置了三种 HTML 引擎程序包:

  • GrapeCity.Documents.Html.Windows.X64
  • GrapeCity.Documents.Html.Mac.X64
  • GrapeCity.Documents.Html.Linux.X64

您需要在程序运行时引用该包,以便其自动选择正确的系统相关引擎包。您可以同时将这三个平台的程序包一起添加到您的项目引用中,或者仅针对一个或两个平台,添加所需要的相关程序包即可。

GcPDF 中 HTML 组件的主要特性

多平台软件包,可在 Windows、macOS 或 Linux 上呈现 HTML 内容;

将页面/ URI 源中的 HTML 内容或 HTML 字符串呈现为 PDF;

可转换的属性包含:

  • 图片
  • 超链接
  • CSS样式表
  • JavaScript脚本
  • HTML5
  • 分页符
  • SVG
  • HTML 表格

支持的 PDF 设置包含:

  • 默认背景
  • 无背景
  • 页面高度
  • 页面宽度
  • 忽略 CSSPageSize
  • 缩放
  • 页面美化
  • 指定要在输出的PDF文件中呈现哪些页面的页面范围
  • DisplayHeaderFooter(页眉页脚)
  • 定义页眉/页脚模板

可将长 HTML 内容拆分为多个页面;

可指定页边距。

如何将用户提交的表格数据导入 PDF 中

GcPDF 添加了新的 GcPdfDocument.ImportFormDataFromCollection() 方法。使用此方法,可以轻松地获取用户提交表单时,发送的字段名称和值列表,并将其导入到与之结构相似的 PDF 表单中,完成这一步,几乎不需要任何代码。

GrapeCity Documents for Word V3.0 更新内容

复制、移动和保护 Word 文档内容

合并、拆分来自多个不同格式的 Word 文档内容,是十分具有挑战性的,不仅要考虑各个文档之间的兼容样式,还要考虑合并后的文档大小,如果文档内容过多,用户则很难从中找到有用的信息。

此外,如果我们只希望某些人打开或编辑带有敏感信息的 Word 文档,则需要为该文档中增加保护属性。

GcWord 提供的 API 可以帮助开发人员拆分、合并 Word 文档,并如 Microsoft Word 系统那样,新增了带有 DocumentProtection、EditProtection 类等多个选项来保护 Word 文档。

GcWord V3.0 新增的功能:

为 Word 文档添加了编辑限制,以防止错误编辑;

在 Word 文档中添加密码和密码属性,用来加密 Word 文档,如果没有正确的密码,任何人都无法访问;

将 Word 文档标记为“最终版”,用以推断自上次保存以来该文档是否被更改;

将只读模式应用于 Word 文档;

应用文档编辑模式以限制可以编辑的内容,这些模式包含:

  • No Protection(未保护模式)
  • AllowOnlyReading(只读模式)
  • AllowOnlyComments(可评论模式)
  • AllowOnlyRevisions(可修订模式)
  • AllowOnlyFormFields(索引模式)

指定在编辑 Word 文档时是否可以修改文档样式;

检查限制是否已应用并处于激活状态。

添加可编辑范围并设置编辑者权限以修改 Word 文档内容

除了文档保护之外,使用 GcWord 还可以允许文本的某些部分由一组指定的人编辑。您可以选定一个范围作为可编辑范围,并使用 EditableRange 和 GroupEditor 为该范围设置组编辑器。

                            GcWordDocument doc = new GcWordDocument(); //add new paragraph var para = doc.Body.Paragraphs.Add("Editable paragraph"); //add new EditableRange for this paragraph para.getRange().EditableRanges.Add(new GroupEditor(EditorGroup.Everyone));   //add new paragraph doc.Body.Paragraphs.Add("New paragraph");   //set document region protection mode doc.Settings.DocumentProtection.EditProtection.EditMode = EditProtectionMode.AllowOnlyReading; //enforce document protection doc.Settings.DocumentProtection.EditProtection.isActive = true;   //now, first paragraph can be editable by everyone. //rest of the document is ReadOnly doc.Save("EditableRange.docx");
                        

在上面的代码中,第一段实现了“可编辑范围”,并且向所有人提供了编辑权限。这个权限不适用于“新段落”,因为下一段内容被设置为只读且不可编辑。

检测格式属性的来源

在 Word 文档中,片段的格式可以通过不同的方式确定:

  • 默认文档样式
  • 父级内容格式(运行中还包括字体的段落)
  • 直接格式化(用户选择一个单词并应用字体/颜色)

使用 Word 文档进行编程时,从运行中找出字体的位置非常有用:默认样式,段落样式或直接格式。

GcWord 添加 GcWordDocument.GetPropertyValueSource 的方法以获取格式设置属性的来源。此功能适用于高级用户,他们需要以编程方式确定 Word 文档中使用的 Word 对象的格式。

当用户希望确保组织内的所有文档都使用预定义的样式,而不是直接设置格式时,这很有用。在这种情况下,开发人员可能只想找出哪些对象在文档中设置了哪些格式和属性,并对它设置预定义的样式,以使所有文档都遵循同一组标准样式。

GrapeCity Documents 文档API组件 - 历史版本

查看更多关于GrapeCity Documents 文档API组件的历史版本。