服务端表格组件 GrapeCity Documents for Excel 更新说明

PDF表单生成器

在 OA 系统自动化的流程中,在线填报的功能和性能至关重要,最为理想的情况是:系统在线收集用户信息,实时校验这些字段以确保信息的准确度,并且,完成上述操作不会因整个表单的填报而延迟。

为了实现上述操作,GcExcel 的模板功能(templete)提供了新的语法来定义 HTML5 输入类型,以确保在 PDF、Excel 等填报项中对其进行实时校验设置。 经过 GcExcel 的模板(templete)处理后,处理结果会被导出成 PDF 文件。该 PDF 可在基于 JavaScript 的 GrapeCity Documents PDF Viewer (简称 GcPdfViewer) 中查看。

借助这项功能,您将获得:

  • 添加超越标准 PDF 规范的 PDF 表单填报项的能力

    本次更新,GcExcel 通过向 PDF 表单提供新的 HTML5 输入类型来扩展填报功能,因此,PDF 表单在 GcPdfViewer 的应用程序中可以用来收集用户的高级输入,如以下输入类型:文本、日期、时间、电话号码、电子邮件地址、URL、密码、月份、星期、数量、范围等。

    基于这些输入类型,您可以指定以下设置,如:自动填充(Autocomplete)、自动获得焦点(Autofocus)、必填项(Required)、拼写检查(Spell check)、限制最大/最小长度(Min/max length)、限制数字/字符串输入字段的模式(patterns)、设置默认值等。

  • 通过简单的模板语法定义 PDF 填报项

    GcExcel 的模板功能提供简单的语法来定义新的 PDF 表单填报项,并用模板功能设置 PDF 表单填报项中显示的验证消息。这一功能只需在模板上配置相关属性,就可实现。


    (通过模板语法设计具有定制输入的 PDF 填报表格)


    (PDF通过 GcPdfViewer 的预览视图,即可在线填报)

  • 满足在 PDF Viewer 设计定制表单的需求

    本次更新,GcPdfViewer 中也加入了对 PDF 表单填充的支持,该功能允许定制填报项标签、微调输入控制的行为以及创建额外的输入验证(即使 PDF 没有内联验证或域标签信息)。

    借助这一功能,用户可以在桌面、移动设备或任何设备上,使用高级输入类型和下拉列表轻松填写 PDF 表单。

支持数据透视图

本次更新,GcExcel 增加了对数据透视图(Pivot Chart)的支持。

借助这一功能,您可以直接通过 Excel 文件中的代码添加数据透视图,以便从透视表中更直观地分析数据,也可通过代码在现有 Excel 文档中增加、修改或删除透视图。

此外,还可以使用 GcExcel 的 API 自定义透视图的各种主题元素,也可将图表的数据源设置为数据透视表。

支持二维码/条形码

条形码是世界各地几乎无处不在的数据显示和捕获形式。快递单、装运标签等文件中包含的条形码信息可以使数据输入和共享更准确、更省事。为了将条形码添加到文档中,GcExcel 提供了一个完整的 API 支持,可用于在 Excel 中设置具有 11 种不同类型的条形码(及其相关属性),并将其导出为任何文档格式,如 PDF、HTML 或图像文件等。

该 API 还可以从具有条形码数据的SpreadJS视图中读取 JSON 文件,以修改设置并导出成 JSON 保存,支持的条形码类型包括:QRCode、EAN-13、EAN-8、Codabar、Code39、Code93、Code128、GS1-128、Code49、PDF417、DataMatrix 等。

只需按以下方式,即可将条形码公式添加到单元格区域:

=BC_<Barcode name>(comma separated Barcode specific settings)

举例,您可以通过以下方式设置 DataMatrix 条形码设置:

API:

=BC_DataMatrix(value, color, backgroundColor, eccMode, ecc200SymbolSize, ecc200EndcodingMode, ecc00_140Symbole, structureAppend, structureNumber, fileIdentifier, quietZoneRight, quietZoneTop, quietZoneBottom)

代码:

//set formula
for (int i = 4; i < 8; i++)
{
    String value = "CONCAT(B" + i + ",\":\",C" + i + ")";
    worksheet.getRange("D" + i).setFormula("=BC_DataMatrix" + "(" + value + ")");
    worksheet.getRange("E" + i).setFormula("=BC_DataMatrix" + "(" + value + ", , ,\"ECC000\")");
    worksheet.getRange("F" + i).setFormula("=BC_DataMatrix" + "(" + value + ", , ,\"ECC200\")");
}

下图显示了将各种紧急号码添加到 Excel 文件中并导出为 PDF 的数据矩阵条形码示例。

跨工作簿公式引用

在大型 Excel 文件中,通常会引用外部工作簿的单元格和公式,在 GcExcel 中也可以。使用 GcExcel 的这一功能,只需引用外部工作簿中的单元格或公式,无需手动打开外部工作簿,就可直接复制、使用、更新其他 Excel 工作簿中的数据。

跨工作簿公式引用的好处?假设有一场景:有一个 Excel 中的不同工作簿存储了多个不同的城市中心数据,且这些中心都有一个集中的行政办公室,如果需要对这些数据进行整体分析。与其复制这些工作簿或复制部分数据,不如直接引用每个工作簿中的数据或单元格,这样就可以更快速、高效地完成分析计算,且无需重复的复制粘贴。

GcExcel 跨工作簿引用的方法:IWorkbook.GetExcelLinkSources(),当数据发生外部更改时,更新当前工作簿的方法:IWorkbook.UpdateExcelLinks()。

支持 Excel 中的迭代计算(循环引用)

迭代计算,指通过一个递推公式反复校正设定的初始近似值,直至达到预定精度要求为止。

使用 GcExcel 启用迭代计算选项:

  • 使用 IWorkbook.Options.Formulas.EnableIterativeCalculation 以获取/设置是否启用迭代计算。
  • 使用 IWorkbook.Options.Formulas.MaximumIterations 获取/设置迭代计算的最大迭代次数。
  • 使用 IWorkbook.Options.Formulas.MaximumChange 获取/设置迭代计算的最大变化。

Excel中相关设置:

GcExcel 相关代码:

支持在模板中设置默认值

有时数据源中没有数据或空数据,处理模板后不需要在 Excel 文件中显示空单元格。

在这种情况下,只需使用 GcExcel 的 defaultValue 属性设置单元格的默认值即可。

获取单元格的公式表达式

本次更新,GcExcel 无需编写代码,即可直接访问一个单元格的地址,可获取一个表示绝对引用的字符串表达式,也可以选择通 过IRange.getAddress() 方法获取一行或列的绝对或相对引用,引用字符串表达式的表现形式表示为 A1 或 R1C1。

                                   
//create a new workbook
Workbook workbook = new Workbook();
IRange mc = workbook.getWorksheets().get("Sheet1").getCells().get(0, 0);
System.out.println(mc.getAddress()); // $A$1
System.out.println(mc.getAddress(false, true)); // $A1
System.out.println(mc.getAddress(true, true, ReferenceStyle.R1C1)); // R1C1
System.out.println(
mc.getAddress(false, false, ReferenceStyle.R1C1, workbook.getWorksheets().get(0).getCells().get(2, 2))); // R[-2]C[-2]
                               

PDF 导出过程监听

在做日常 PDF 导出操作时,往往不需要将整个 Excel 文档转换为 PDF,或在转换为 PDF 时仅需要指定某些页面。

为此,可以使用 GcExcel 的 PagePrinting 和 PagePrinted 事件跟踪 Excel 文档转换为 PDF 的进度。您可以捕捉这些事件以跟踪导出进度,也可以通过 HasMorePages 和 SkipThisPage 属性,实现在导出时跳过当前页或仅在完成当前页之后退出导出。

PdfSaveOptions options = new PdfSaveOptions();
options.getPagePrintingEvent().addListener((sender, e) -> {
  if (e.getPageNumber() == 2) {
    e.setSkipThisPage(true);
  }
}); 

工作簿多选操作

某些 Excel 文件可能包含多个工作表,一旦需要对这些工作表的一个子集执行操作,例如通过一个打印命令打印多个工作表,或将所有工作表添加一个公共内容时,会显得有些不便。

为此,GcExcel 提供了对应 API 用于选择多个工作表或工作簿。

按特殊类别查找单元格

和 Excel 类似,GcExcel 中单元格的数据可以有很多不同的表现形式,例如:注释、公式、错误、数据验证、条件格式等,使 用Irange.specialCells 方法可以按照类型或者值来查找单元格。

当您需要高亮某些单元格,或者按照错误去查找并修复某些单元格的时候,可以通过上述接口来定位单元格的位置。

如下图,将具有固定值的单元格背景色设置为深灰色,将具有公式的单元格设置为浅灰色。

数据透视表按时间/日期分组

在使用数据透视表时,经常遇到对日期/时间进行分析的需求。

为此,GcExcel 的数据透视表默认会将添加到行列下拉列表中的字段自动分组, 功能设置效果与下图Excel中的设置相同。虽然这使得不同日期/时间跨度的分析数据变得容易,但有时无需将这些域组合在一起。通过 IWorkbook.Options.Data.AutomaticGroupDateTimeInPivotTable 属性设置,可决定是否自动分组数据透视表中的日期/时间。

加强与 SpreadJS 的功能集成

本次更新,GcExcel 强化了与纯前端表格控件 SpreadJS 的功能集成,如下:

  • 支持单元格的内边距和标签
  • 支持单元格类型 Radio Button List 和checkbox list
  • 支持区域模板(Range Template)
  • 支持背景图片设置
  • 支持单元格按钮设置(Cell buttons)
  • 支持单元格下拉选项(Cell dropdown)
  • 支持格式字符串(Format string)
  • 支持二维码(Barcodes)
  • 支持单元格省略号(Show Ellipsis)
  • 支持数据验证样式设置(Validation style)
  • 支持 JSON 导入导出参数设置(Json options)

 

服务端 PDF 组件 GrapeCity Documents for PDF 更新说明

支持生成具有特殊输入类型和验证的在线 PDF 表单

本次更新,支持将 HTML5 数据类型添加到 PDF 表单中。

该功能允许定制填报项标签、微调输入控制的行为以及创建额外的输入验证(即使PDF没有内联验证或域标签信息)。

使用此功能,用户可以在桌面、移动设备或任何设备上使用高级输入类型和下拉列表轻松填写 PDF 表单。

在协作模式下共享和编辑 PDF 文档

本次更新,可以在协作模式下共享和编辑 PDF 文档了。

这样您就可以节省客户的时间和精力,他们可以同时在第一时间填写表单!您可以控制谁查看和编辑文档,并让多个用户同时协作,上述操作都可以通过 GrapeCity Documents for PDF 的 API 进行设置。

从 PDF 文档中提取表格数据

GrapeCity Documents for PDF 的新版本可以通过 API 获取 PDF 中的表格数据,结合 GcExcel 可以实现将 PDF 的表格数据在 Excel 中进行展现。

 

服务端 Word 组件 GrapeCity Documents for Word 更新说明

提供设置模板功能,自动化绑定数据到 Word

通过使用 GrapeCity Documents for Word 的 API 可以定义具有综合语法能力的数据模板,实现利用同一模板自动化生成具有不同数据的 word 文档。

历史版本

查看更多关于 GrapeCity Documents 服务端文档组件库的历史版本。