GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF、控制分页和电子表格内容、将Excel电子表格的特定页面打印为PDF、在工作簿之间剪切和复制工作表等。

作为一款适用于 .NET 和 Java 6.0+ 标准的文档API组件,GrapeCity Documents for Excel 通过编码的方式,无需依赖 Microsoft Excel ,即可超快批量操作 Excel 文件,与纯前端表格控件 SpreadJS 结合使用,可同时在 Web 端实现 Excel 类数据展示、Excel 功能和布局样式,以及后端 Excel 导入导出等业务场景,使您开发的应用程序具备快速创建、加载、编辑、导入/导出大型 Excel 文档的功能模块。

将带有形状的电子表格导出为 PDF

使用 GrapeCity Documents for Excel,您可以将带有形状的电子表格导出为 PDF,这些形状包括箭头、线条、图片和一般默认形状(包括 MS Excel 的内置形状)。利用这一特性,开发人员可以创建更为有趣且丰富的 Excel 工作表。

导出的 PDF 中支持的形状属性包括:

  • 填充样式
  • 线条样式
  • 形状与文本
  • 形状与图片
  • 旋转的形状
  • 翻转的形状
  • 分组的形状

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

控制分页和电子表格输出的内容

GrapeCity Documents for Excel 通过引入一个名为 PrintManager 的类来控制分页、导出 PDF 和控制电子表格输出的内容,该功能通过在 PageInfo 对象中提供用于分页结果的用户信息,以及通过 PrintManager.Paginate 方法从 Excel 文件生成的页面列表中,实现将 Excel 的特定部分导出到 PDF 文档中。该功能可执行以下操作:

  • 添加、删除、修改页面
  • 更改页码、页数、页面内容和页面设置

该功能的实现步骤包括:

通过 GrapeCity Documents for Excel 提供的这项功能,可有效解决将 Excel 文件转换为 PDF 时的分页、页面布局、页面设置等问题。

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

在 PDF 中渲染 Excel 报表

一份完整的报表通常是由文本描述、数字和图表组合而成。以财务报表举例,完整的财务报表可视为公司业务活动和财务业绩的混合体,为保证其数据的准确性、不可编辑性与安全性,通常会以 PDF 文档的格式分发给客户,尽可能地保留原始文档的质量和数据。

此报表用 Excel 的方式展示了公司现金流、净收入等数据。Excel 方式的最大特点就是以表格的形式显示数据,为了进行二次分发并保证此报表数据的真实性,可通过 GrapeCity Documents for Excel 文档API 来将 Excel 数据转换成 PDF,也可提取 Excel 表中某一工作簿的位置在 PDF 文件中进行渲染。

通过使用 GrapeCity Documents for Excel 的 PrintManager 类从 Excel 中提取数据,并通过 GrapeCity Documents for PDF 的 API 导出到 PDF 中。

注意:要使用此功能,您需要同时获得 GrapeCity Documents for PDF 和 GrapeCity Documents for Excel (.NET版本)的许可授权。

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

将 Excel 电子表格的指定页面内容打印为 PDF

有时,我们不需要打印所有页面,只需要从 Excel 文件中打印指定的页面信息。例如以下场景,贵公司有一份年度产品和销售清单,并通过数据透视表进行分析。您可以根据需要查看特定客户的销售额和产品总销售额,但只需将数据透视表的数据分析结果打印为 PDF,以便分发给利益相关者。这时,就会用到将 Excel 电子表格的指定页面内容打印为 PDF 功能。

在下面的文件中,公司希望打印 Page 5、Page 6 和 Page 7 部分,并且在打印结果中,以连续页码 1、2、3 呈现。

您可以从 PageInfo 对象中选择特定的页面内容,然后使用 PrintManager.UpdatePageNumberAndPageSettings(..)方法设置连续页码。

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

打印时将同一张表的数据保持在一张纸上

有时,表数据需要在同一张纸上打印,而不是单独打印在一个新的页面上。特别是,当合并单元格时,用户不希望合并的行数据在打印时被分割在不同的页面上。使用 KeepTogetherRanges 类可以帮助您设置,打印时将同一张表的数据保持在一张纸上。

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

在 PDF 中将多个工作表打印到同一页

Excel 工作簿中可能同时包含多个工作表的数据。例如,在公司的每月预算的详细信息中,每月摘要位于第一个工作表上,而每月预算详细信息则位于单独的工作表中。在这种情况下,能够将单页数据分发给公司股东是最佳情况。

因此,将多个工作表内容打印到 PDF 中的单个页面将非常有用,通过 GrapeCity Documents for Excel 的 PrintManager 类与 GrapeCity Documents for PDF 的 API 相结合可以顺利完成该任务。PageInfo PrintManager 的对象能够获取 Excel 文档的所有页面,通过 PrintManager.Draw(..)可以查看页面在 GrapeCity Documents for PDF 中的呈现方式,如 n 行 n 列的布局。

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

管理不同页面上的标题

打印 PDF 时,如果工作表中有多个表,则可能需要在所有页面上重复表标题。用户可以指定当各个表溢出到其他页面时重复当前表的标题。

使用 RepeatSettings 类,可以访问特定表的标题、尾部行、列、表头和结尾。您还可以在 PrintManager.Paginate(..)方法中发送 RepeatSettings 等。

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

将不同的 Excel 工作簿导出为一个 PDF

在任何行业中,都难免生成数百个 Excel 报告来分析数据。为了分发这些数据给客户,公司更喜欢 PDF 格式,因为它无法编辑,可以保留原始文档的质量和格式。

如果多个报告属于单个项目,您一定不希望向客户提供多个 PDF 文件。GrapeCity Documents for Excel 为您提供了将不同的 Excel 工作簿导出为一个 PDF 的功能,仅需简单的代码即可实现。调用 PrintManager 类可以在不同的工作簿中直接保存为一个 PDF 文件。

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

在 PDF 的右侧、底部等位置重复行与列

在许多情况下,在 PDF 的底部或右侧重复行、列是有帮助的。例如,贵公司可能需要在每个打印页面的底部重复免责声明或注释:

我们以世界卫生组织的报告为例。它收集区域卫生技术信息,作为国家卫生计划的一部分,或仅有一个不属于国家卫生计划的卫生技术中心的地区。我们使用 Yes1 和 Yes2 的值作为图例,在每页的底部重复。

您可能需要对数据透视表的不同区域进行不同的格式化,以强调哪些数据属于哪里,比如:组织的月度预算报告。该报告将以 3 页打印,每页都会在最后重复该消息。

Microsoft Excel 没有直接在底部或右侧重复行或列的方法,它只能选择在顶部或左侧重复行或列。要在 Microsoft Excel 的底部重复行,一般只能使用“页脚”,但它对于大型文本的作用是有限的。

通过 GrapeCity Documents for Excel 的 PageSetup API ,可以在导出到 PDF 时在右侧重复行或列。通过 IPageSetup.PrintTailRows / PrintTailColumns 可在 PDF 导出期间重复行或列。

条件格式化数据透视表的样式和字段

数据透视表是一种数据分析摘要工具,其中复杂的数据被分组并按行和列进行排序。您可能需要在数据透视表的不同区域以不同的格式强调数据归属,特别是以下区域中:

  • 行/列标题
  • 备用行/列
  • 总计列式
  • 小计行/列样式
  • Pivot Fields 数字格式

例如,在下面的销售报告中,使用了数据透视表对产品 ID 进行分组,从而显示每季度的销售数据。此表使用了不同的背景色突出显示每个行标题和子行标题内容。

GrapeCity Documents for Excel 提供的数据透视表功能支持条件格式化。通过设置,数据透视表的标题、小计和总计中重复的行/列将具有相同的样式(如 API 中所定义的那样),您不需要单独设置每一行/列的样式,并且在格式化数据透视表时,可以将具有样式和数字格式的数据透视表导出为 PDF,而不会丢失任何样式。

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

导入/导出 .CSV 文件时自定义行/列/值分隔符

表格数据的逗号分隔值文件(.csv)通常用于管理 Excel 文件中的信息,例如,产品、库存、客户信息和其他数据,用户可以轻松地向 .CSV 文件录入信息,如直接录入或通过第三方导入。

在通过第三方导入时,不必仅使用逗号进行分隔数据,任何字符串或字符都可用于分隔 Excel 文件的行、列或单元格。

GrapeCity Documents for Excel 不仅支持列分隔符、自定义分隔符,还支持使用任何行、单元格、列分隔符导入和导出 .csv 文件。

var openOption = new CsvOpenOptions(); 
openOption.ColumnSeparator = ","; 
openOption.RowSeparator = "\r\n"; 
openOption.CellSeparator = '"'; 
workbook.Open(@"D:\test.csv", openOption); 

var saveOption = new CsvSaveOptions(); 
saveOption.ColumnSeparator = "-"; 
saveOption.RowSeparator = "\n"; 
saveOption.CellSeparator = '\''; 
workbook.Save(@"D:\test_out.csv", saveOption);

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

支持粘贴选项

Excel 文件以格式化数据和公式而闻名。用户在创建复杂的工作表后,往往需要在其他工作表上复制内容。根据不同的需要,复制的内容也有所不同。您可能只想复制文本内容、目标主题、公式,或仅复制格式。例如,在每月预算报告中,计算公式都保持不变;但是,格式可能会被修改。

下图即可反映出如何通过 GrapeCity Documents for Excel 仅复制公式的操作。

GrapeCity Documents for Excel 除了提供可复制范围内的所有数据(不包括列宽/行高以外的设置),还包含各种 PasteType 选项,通过这些选项,用户可以通过 Excel 文件覆盖复制、粘贴内容中涉及的多个方案,例如:

  • 粘贴公式和格式
  • 仅粘贴值
  • 仅粘贴公式
  • 仅粘贴数字格式
  • 仅粘贴列宽
  • 仅粘贴行高
  • 粘贴值和数字格式的组合
  • 粘贴公式和数字格式的组合

举例,使用以下代码仅复制公式:

var workbook = new Workbook(); 
var worksheet = workbook.ActiveSheet; 
worksheet.Range["A1"].Value = "2019/3/08"; 
worksheet.Range["A1"].Font.Size = 20; 

worksheet.Range["A1"].Copy(worksheet.Range["D1"], PasteType.Formulas);

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

插入、删除行/列时自动调整分页符

GrapeCity Documents for Excel 在 Excel 工作表中插入行/列时,分页符可以通过添加数据来调整。例如,公司将其销售记录从 Excel 导出到 PDF 时,为保证每个区域都可以单独显示在一个新的页面上,GrapeCity Documents for Excel 会自动执行插入分页符操作。

使用 GrapeCity Documents for Excel 的 FixedPageBreaks 属性来控制分页符的调整方式(在对行/列执行插入、删除操作时),这样做的目的,是为了保证每个区域都会单独占据一张新页面。

注意:要在行/列插入、删除时自动调整分页符,请将 FixedPageBreaks 设置为 false。如果您不希望自动调整分页符,请将 FixedPageBreak 设置为 true

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

复制和移动工作表

在处理大量的 Excel 工作表和模板时,我们经常会使用复制和移动工作表的功能。例如,公司的预算工作表包含复杂的数据和需要按季度填写的公式,这些公式基本每年都会重复,每个部门在创建新的预算工作表时仅需复制主模板的内容和结构即可快速生成,而在 GrapeCity Documents for Excel 中这项工作将变得更为简单。

GrapeCity Documents for Excel 通过编程的方式复制和移动工作表,worksheet.Copy 方法用以在不同的位置复制和移动工作表。

Workbook workbook = new Workbook(); 
var worksheet = workbook.ActiveSheet; 
var worksheet_copy_sameWorkbook = worksheet.Copy(); 
var newWorkbook = new Workbook(); 
var worksheet_copy_otherWorkbook = worksheet.Copy(newWorkbook);

.NET 平台帮助文档 | .NET 平台示例(复制工作表) | .NET 平台示例(移动工作表)

Java 平台帮助文档 | Java 平台示例(复制工作表) | Java 平台示例(移动工作表)

跨工作簿剪切和复制数据

GrapeCity Documents for Excel 支持跨工作簿剪切和复制数据,这项功能使得在任何范围内剪切、复制数据都将变得更加容易,尤其是需要在数百个工作簿中使用相同数据的时候。

跨工作簿剪切和复制数据的示例代码:

Workbook workbook = new Workbook(); 
var worksheet = workbook.ActiveSheet; 
var newWorkbook = new Workbook(); 

//Copy range to another workbook 
worksheet.Range["B2:F21"].Copy(newWorkbook.ActiveSheet.Range["D5"]);

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

查找和替换文本

当需要把 Excel 数据更新到多个电子表格时,能够快速找到所需信息至关重要。在常规手段下,扫描数百个行和列非常耗时,但您可以使用 GrapeCity Documents for Excel 在几秒钟内完成此项任务。

例如,公司希望更新年度预算报表,该报表是按照月度预算进行分类的,现在需要在每月费用中新增一行数据,该数据具备特定的计算公式。此时,就需要在每个工作表中找到这个特定的公式,并执行公式运算结果。使用 Excel 完成这项工作将是非常耗时的,但通过 GrapeCity Documents for Excel 提供的查找和替换 API 即可快速完成。

以下代码显示了如何在工作表中查找和替换公式:

FindOptions fd = new FindOptions(); 
fd.LookIn = FindLookIn.OnlyFormulas; 
foreach (var worksheet in workbook.Worksheets)
 { 
    IRange range = null; 
    do 
    { 
        range = worksheet.UsedRange.Find("X", range, fd); 
        if (range != null) 
        { 
            range.Formula = range.Formula.Replace("X", "Y"); 
        } 
    } while (range != null); 
}

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

在 Cell 范围内支持 FormulaArrayR1C1

GrapeCity Documents for Excel 现在支持 IRange.FormulaArrayR1C1(),该函数可以为任何单元格范围引用 R1C1 样式公式。

例:

worksheet.Cells["A11"].R1C1Formula = "=SUM(R[-10]C[0]:R[-7]C[0])";

导出为 PDF 时支持缩小文本内容以适应边框大小

GrapeCity Documents for Excel 允许导出为 PDF 时缩小文本内容以适应边框大小。

在 Microsoft Excel 中,单元格内的文本内容默认禁用“缩小到适合”的设置。因此,将此文档导出为 PDF 时,该单元格的文本内容可能会由于字号过大而显示不完整。

GrapeCity Documents for Excel 通过引入一个新的 API

  • PdfSaveOptions,为用户提供 ShrinkToFitSettings,使用这些设置,用户可以调整现有行高、列宽并缩小单元格中的文本字号,在导出为 PDF 时,用户还可以设置最小字体大小或省略号字符串以显示更长的文本。该方法支持单元格级别的缩小方式。

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

支持导入 XlsxOpenOptions 的标志

GrapeCity Documents for Excel 在导入 Excel 电子表格时支持 NoFlag、Data、Formulas Import 和更多类型的标志,如:

  • MergeArea
  • 样式
  • 条件格式
  • 资料验证
  • 数据透视表
  • 形状

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

提供自动调整行高、列宽的 API

GrapeCity Documents for Excel 引入了自动调整工作簿任何范围内行高和列宽的选项,并可根据数据进行调整,该 API 非常易于使用,只需在工作簿范围内,执行“AutoFit()”方法即可。

对于数据太长​​而无法放入 Excel 单元格内的,通过使用 GrapeCity Documents for Excel ,即可自动调整行高、列宽,以实现跨越单元格的样式。想象一下,当你有成千上万行不同长度的文字,必须扫描整个工作簿以检查行高和列宽,才可确保数据完全可见,但通过 GrapeCity Documents for Excel ,仅用少量的代码即可快速完成这一步操作。

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

在 Excel I / O 时保留 OLEObjects

您现在可以通过 GrapeCity Documents for Excel 使用 OLEObjects 方式加载、修改和保存 Excel 电子表格。与此同时,在 Excel I / O 操作期间将保留这些对象。

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

保留日本的 Ruby 角色

使用 GrapeCity Documents for Excel 在 Excel I / O 中保留日语 ruby 字符。即使在某些 API 操作之后,日语 Ruby 字符也会被保留,例如:插入、删除、复制、剪切、合并、清除、排序等。

以上就是GrapeCity Documents for Excel 文档API组件 V2.2 的新特性介绍,更多内容欢迎前往产品官网了解。