3.2.1. XLSX 和 XLS 模板

可以使用 Microsoft OfficeLibreOffice 创建 XLSX 和 XLS 模板。

每个报表带区必须在模板中具有相应的区域,该区域被命名为带区。例如,报表有两个区 - Header 和 Data。这意味着该模板还应具有 Header 和 Data 命名区域。要创建命名区域,请选择所需的单元格区域,然后在应用程序左上角的字段中输入名称。要编辑现有命名区域,请在 Microsoft Office 中使用 FormulasName Manager 菜单命令,在 OpenOffice 中使用 InsertNamesManage 命令。 反之亦然,每个要显示的工作表上的区域应该是报表中的一个带区(至少是一个空带区)。

报表带区以报表数据结构中指定的顺序输出。

报表带区可以是水平或垂直的。如果报表区是水平的,相应的命名区域将向下扩展,垂直,将向右扩展。水平报表带区可以以树状结构组织并包含子报表带区(嵌套或子报表带区)。因此,对于子报表带区,需要直接在与父报带表区对应的区域下创建命名区域。 XLSX 格式化器使用以下算法渲染子报表带区:

  • 渲染父报表带区的第一行 →

  • 渲染第一行的所有子行 →

  • 渲染父报表区的下一行。

带区数据集字段以 ${field_name} 格式放置在模板中,其中 field_name 是相应的报表带区字段名称。例如:

report template xls
Figure 34. XLS 文件模板

可以将变量添加到报表模板。变量应该以格式 ${<BandName>.<variableName>} 插入到 XLSX 模板的工作表名称或的页眉/页脚中。

单元格中可能包含格式以及多个字段。要输出图像或公式,需要将它们完全放入与报表带区链接的相应命名区域。

公式可以引用相同报表带区或另一报表带区的单元格。要由格式化程序处理,公式应该使用报表区中的单元格范围,或直接使用单元格坐标,例如,(A1*B1)($B:$B)

要将数据作为 Excel 图表处理,在报表结构中创建一个空报表区,并在模板中创建一个具有相同名称的命名区域。然后在此命名区域内创建一个图表,并使用图表右键菜单中的 Select data 按钮引用关联的报表数据区域。如果图表数据位于连续的单元格范围内,请选择该范围内的所有单元格。图表将包含该范围内的所有数据。如果数据不在连续范围内,请选择不相邻的单元格或范围。

将 XLSX 转换为 PDF 和 CSV

XLSX 报表可以自动转换为 CSV 和 PDF 格式。需要为 PDF 转换安装OpenOffice/LibreOffice

csv output
Figure 35. CSV Output