设计配置以生成 Excel 格式的文档

可以设计一种电子报告 (ER) 格式配置,该配置中有一个 ER 格式组件可配置来生成 Microsoft Excel 工作簿格式的传出文档。 必须为此用途使用特定 ER 格式组件。

若要了解此功能的更多信息,请执行设计用于生成 OPENXML 格式的报表的配置一文中的步骤。

添加新的 ER 格式

添加新的 ER 格式配置以生成 Excel 工作簿格式的传出文档时,必须为格式的格式类型属性选择 Excel 值,或将格式类型属性保留为空。

  • 如果选择 Excel,可以将格式配置为只能生成 Excel 格式的传出文档。
  • 如果将属性保留为空,可以将格式配置为使用 ER 框架支持的任何格式生成传出文档。

若要配置此配置的 ER 格式组件,请在操作窗格上选择设计器,然后打开要用于在 ER 操作设计器中进行编辑的 ER 格式组件。

配置页面。

Excel 文件组件

手动输入

必须向配置的 ER 格式添加 Excel\文件组件,才能生成 Excel 格式的传出文档。

Excel\文件组件。

若要指定传出文档的布局,请向 Excel\文件组件添加一个扩展名为 .xlsx 的 Excel 工作簿充当传出文档的模板。

注释

手动附加模板时,必须使用已经在 ER 参数中为此目的配置的文档类型

向“Excel\文件”组件添加附件。

若要指定在运行配置的 ER 格式时如何填写附加的模板,必须向 Excel\文件组件添加嵌套的工作表范围单元格组件。 每个嵌套组件必须与一个 Excel 命名项关联。

导入模板

可以选择操作窗格导入选项卡上的从 Excel 导入,以将新模板导入到空白 ER 格式中。 在此示例中,将自动创建一个 Excel\文件组件,并为其附加导入的模板。 还将根据发现的 Excel 命名项列表自动创建所有必需 ER 组件。

选择“从 Excel 导入”。

注释

如果要创建可编辑 ER 格式的可选工作表元素,请将创建 Excel 工作表格式元素选项设置为

工作表组件

工作表组件指示必须填写的 Excel 工作簿附件的工作表。 Excel 模板中的工作表的名称在此组件的工作表属性中定义。

注释

此组件对其中包含单个工作表的 Excel 工作簿可选。

在 ER 操作设计器的映射选项卡上,可以配置工作表组件的启用属性以指定是否必须将组件放入生成的文档中:

  • 如果将启用属性的表达式配置为在运行时返回 True,或者如果根本不配置任何表达式,将把适当的工作表放入生成的文档中。
  • 如果将启用属性的表达式配置为在运行时返回 False,生成的文档中将不包含工作表。

工作表组件的示例。

范围组件

嵌套组件

数据键入

范围组件可以有其他嵌套 ER 组件,用于在相应范围中输入值。

  • 如果使用文本组的任何组件输入值,将把该值在 Excel 范围中作为文本值输入。

    注释

    使用此模式根据应用程序中定义的语言环境为输入的值设置格式。

  • 如果使用 Excel 组的单元格组件输入值,该值将在 Excel 范围中作为该单元格组件的绑定定义的数据类型的值。 例如,数据类型可能是字符串实数整数

    注释

    使用此模式让 Excel 应用程序根据打开传出文档的本地计算机的区域设置来为输入的值设置格式。

行处理

范围组件可以配置为垂直复制,以在 Excel 工作表中生成多行。 这些行可以由父范围组件或其嵌套的范围组件生成。

在 10.0.26 及更高版本中,您可以强制生成的工作表将生成的行保持在同一页面。 在 ER 格式设计器中,将可编辑 ER 格式的父范围组件的行保持在一起选项设置为。 然后,ER 将尝试将该范围生成的所有内容保留在同一页面上。 如果内容的高度超过当前页面的剩余空间,将会添加分页符,内容将从下一个新页面的顶部开始。

注释

我们建议您仅为跨越生成文档的整个宽度的范围配置行保持在一起选项。

行保持在一起选项仅适用于配置为使用 Excel 工作簿模板的 Excel > 文件组件。

行保持在一起选项只能在支持在电子报告框架中使用 EPPlus 库功能启用时使用。

此功能可用于位于页面组件下的范围组件。 但是,不能保证使用数据收集数据源可以正确计算页脚总计

要了解如何使用此选项,请按照设计 ER 格式以将行保持在同一 Excel 页面上中的示例步骤进行操作。

复制

Replication direction 属性指定是否在生成的文档中重复范围和如何重复范围。

  • 不复制 – 生成的文档中不会重复相应的 Excel 范围。

  • 垂直 – 相应的 Excel 范围将在生成的文档中垂直重复。 将把复制的每个范围放到 Excel 模板中原始范围下。 复制数量由与此 ER 组件绑定的记录列表类型的数据源中的记录数量定义。

  • 水平 – 相应的 Excel 范围将在生成的文档中水平重复。 将把复制的每个范围放到 Excel 模板中原始范围右侧。 复制数量由与此 ER 组件绑定的记录列表类型的数据源中的记录数量定义。

    若要详细了解水平复制,请执行使用可水平扩展的范围在 Excel 报表中动态添加列中的步骤。

正在启用

在 ER 操作设计器的映射选项卡上,可以配置范围组件的启用属性以指定是否必须将组件放入生成的文档中:

  • 如果将启用属性的表达式配置为在运行时返回 True,或者如果根本不配置任何表达式,将在生成的文档中填写相应范围。
  • 如果将启用属性的表达式配置为在运行时返回 False,并且此范围不表示整行或整列,将不在生成的文档中填写相应范围。
  • 如果将启用属性的表达式配置为在运行时返回 False,并且此范围不表示整行或整列,生成的文档中将包含这些行和列,但显示为隐藏行和隐藏列。

调整大小

您可以将 Excel 模板配置为使用单元格来呈现文本数据。 为确保单元格中的整个文本在生成的文档中可见,您可以将该单元格配置为文本自动换行。 如果换行后的文本不完全可见,您还可以配置包含该单元格的行以自动调整高度。 有关详细信息,请参阅修复单元格中被截断的数据中的“在单元格内自动换行”一节。

注释

由于已知的 Excel 限制,即使您将单元格配置为自动换行,并且将包含这些单元格的行配置为自动调整高度以适应换行后的文本,您也可能无法对合并的单元格和包含这些单元格的行使用自动调整自动换行 Excel 功能。

从 Dynamics 365 Finance 版本 10.0.23 开始,当您处理生成的文档时,对于每个被配置为自动调整高度以适合嵌套单元格的内容的行,每当该行包含至少一个被配置为在内部进行文本换行的合并单元格,您都可以强制 ER 计算每一行的高度。 然后计算出的高度将用来调整行的大小,以确保行中的所有单元格在生成的文档中可见。

注释

请注意,当使用自定义字体格式化合并单元格时,此功能可能无法按预期方式工作。 由于 Excel 未嵌入自定义字体,因此它不提供有关自定义字体大小的信息。 因此,可能会错误地估计合并单元格的大小。

要在运行任何配置为使用 Excel 模板生成传出文档的 ER 格式时开始使用此功能,请执行以下步骤。

  1. 转到组织管理>工作区>电子申报
  2. 本地化配置页面的相关链接部分中,选择电子申报参数
  3. 电子报告参数页上,在运行时选项卡上,将自动调整行高选项设置为

当您想要更改单个 ER 格式的这一规则时,请按照以下步骤更新该格式的草稿版本。

  1. 转到组织管理>工作区>电子申报

  2. 本地化配置页面的配置部分中,选择报告配置

  3. 配置页面上,在左窗格的配置树中,选择用于使用 Excel 模板生成传出文档的 ER 配置。

  4. 版本快速选项卡上,选择状态为草稿的配置版本。

  5. 在操作窗格上,选择设计器

  6. 格式设计器页上,在左窗格中的格式树中,选择链接到 Excel 模板的 Excel 组件。

  7. 格式选项卡上的调整行高字段中,选择一个值以指定是否应在运行时强制 ER 更改由编辑后的 ER 格式生成的传出文档中的行高:

    • 默认值 – 使用在电子报告参数页面的自动调整行高字段中配置的常规设置。
    • – 替代常规设置,在运行时更改行高。
    • – 替代常规设置,在运行时不更改行高。

单元格组件

单元格组件用于填写 Excel 命名列、形状和图片。 若要指示单元格 ER 组件必须填写的 Excel 命名对象,必须在单元格组件的 Excel 范围属性中指定该对象的名称。

在 ER 操作设计器的映射选项卡上,可以配置单元格组件的启用属性以指定是否必须在生成的文档中填写该对象:

  • 如果将启用属性的表达式配置为在运行时返回 True,或者如果根本不配置任何表达式,将在生成的文档中填写相应对象。 此单元格组件的绑定指定放入相应对象中的值。
  • 如果将启用属性的表达式配置为在运行时返回 False,将不在生成的文档中填写相应对象。

将配置单元格组件以在单元格中输入值时,可以与返回原始数据类型(如字符串实数整数)的值的数据源绑定。 在此情况下,将在单元格中把该值作为相同数据类型的值输入。

配置单元格组件以在 Excel 形状中输入值时,可以与返回原始数据类型(如字符串实数整数)的值的数据源绑定。 在此情况下,将在 Excel 形状中把该值作为该形状的文本输入。 对于非字符串事件类型的值,将自动转换为文本。

注释

可以配置单元格组件以仅在支持形状文本属性时填写形状。

配置单元格组件以在 Excel 图片中输入值时,可以与返回以二进制格式表示图像的容器数据类型的值的数据源绑定。 在这种情况下,值将作为图像输入到 Excel 图片中。

注释

将把每个 Excel 图片和形状视为通过其右上角锚定到特定 Excel 单元格或范围。 如果要复制 Excel 图片或形状,必须将锚定的单元格或范围配置为复制的单元格或范围。

提示

如果您计划在运行时使用具有自定义缩放比例和纵横比的图像,我们建议您将父 Excel 文件组件的选项保持图片缩放比例设置为,以在您正在使用的 Excel 模板中应用此缩放比例和纵横比作为该图像的占位符。

若要详细了解如何嵌入图像和形状,请参阅使用 ER 在生成的文档中嵌入图像和形状

分页符组件

分页符组件强制 Excel 新分页。 如果希望使用 Excel 的默认分页,则无需此组件,但是如果希望 Excel 按照您的 ER 格式构造分页,应使用此组件。

页面组件

概览

当您希望 Excel 在生成的出站文档中采用您的电子报告格式和结构分页时,您可以使用页面组件。 当电子报告格式运行页面组件下的组件时,将自动添加所需的分页符。 在此过程中,将考虑生成内容的大小、Excel 模板的页面设置以及Excel 模板中选择的纸张大小。

如果您必须将生成的文档拆分为不同的部分,每个部分有不同的分页,您可以在每个工作表组件中配置多个页面组件。

结构

如果页面组件下的第一个组件是范围组件,其中复制方向属性设置为无复制,此范围将被考虑用于基于当前页面组件设置的分页页眉。 与此格式组件关联的 Excel 范围在使用当前页面组件的设置生成的每个页面的顶部重复出现。

注释

要正确分页,如果在您的 Excel 模板中配置了要在顶部重复的行范围,此 Excel 范围的地址必须等于与上述范围组件关联的 Excel 范围的地址。

如果页面组件下的最后一个组件是范围组件,其中复制方向属性设置为无复制,此范围将被考虑用于基于当前页面组件设置的分页页脚。 与此格式组件关联的 Excel 范围在使用当前页面组件的设置生成的每个页面的底部重复出现。

注释

要正确分页,不应在运行时调整与范围组件关联的 Excel 范围。 我们不建议您使用在单元格内自动换行自动调整行高 Excel 选项来设置此范围的单元格的格式。

您可以在可选的范围组件之间添加多个其他范围组件,来指定如何填充生成的文档。

如果页面组件下的嵌套范围组件集不符合前面所述的结构,在电子报告格式设计器中设计时将发生验证错误。 此错误消息将通知您该问题可能会导致运行时出现问题。

注释

要生成正确的输出,不要为页面组件下的任何范围组件指定绑定(如果该范围组件的复制方向属性设置为无复制,并且范围配置为生成页眉或页脚)。

如果您希望与分页相关的合计和盘点计算运行总计和每页总计,我们建议您配置所需的数据收集数据源。 要了解如何使用页面组件对生成的 Excel 文档分页,请完成设计电子报告格式以对生成的 Excel 格式的文档进行分页中的过程。

限制

当您使用页面组件进行 Excel 分页时,在分页完成之前您不会知道生成的文档中的最终页数。 因此,您无法使用电子报告公式计算总页数,也就无法在最后一页之前的任何页面上打印生成文档的正确页数。

提示

可以通过对页眉和页脚使用特殊的 Excel 格式,在 Excel 页眉或页脚中实现此结果。

在 Dynamics 365 Finance 版本 10.0.22 中更新可编辑格式的 Excel 模板时,不会考虑已配置的页面组件。 考虑在 Finance 的将来版本中实现此功能。

如果您将 Excel 模板配置为使用条件格式,在某些情况下它可能无法按预期工作。

适用性

仅当组件配置为使用 Excel 中的模板时,页面组件才可用于 Excel 文件格式组件。 如果您使用 Word 模板替换 Excel 模板,然后运行可编辑的电子报告格式,页面组件将被忽略。

页面组件仅在启用了支持在电子报告框架中使用 EPPlus 库功能时起作用。 如果电子报告在禁用此功能时尝试处理页面组件,将在运行时引发异常。

注释

如果电子报告格式处理 Excel 模板的页面组件,该模板至少包含一个引用无效单元格的公式,将在运行时引发异常。 为帮助防止运行时错误,请按照如何更正 #REF! 错误中所述修复 Excel 模板。

页脚组件用于在 Excel 工作簿中生成的工作表底部填充页脚。

注释

您可以为每个工作表组件添加此组件,以在生成的 Excel 工作簿中为不同的工作表指定不同的页脚。

配置单个页脚组件时,您可以使用页眉/页脚外观属性指定组件所用于的页面。 提供以下值:

  • 任何 – 对父 Excel 工作表的任何页面运行配置的页脚组件。
  • 第一个 – 只对父 Excel 工作表的第一个页面运行配置的页脚组件。
  • 偶数 – 只对父 Excel 工作表的偶数页面运行配置的页脚组件。
  • 奇数 – 只对父 Excel 工作表的奇数页面运行配置的页脚组件。

对于单个工作表组件,您可以添加一些页脚组件,其中每个组件都具有不同的页眉/页脚外观属性值。 这样,您可以为 Excel 工作表中的不同类型的页面生成不同的页脚。

注释

确保添加到单个工作表组件的每个页脚组件都具有不同的页眉/页脚外观属性值。 否则,会出现验证错误。 您收到的错误消息会通知您有关不一致的情况。

在添加的页脚组件下面,添加文本\字符串文本\日期时间或其他类型的所需嵌套组件。 配置这些组件的绑定,以指定页面页脚的填充方式。

您也可以使用特殊格式代码正确格式化生成的页脚的内容。 要了解如何使用此方法,请执行本文后面的示例 1 中的步骤。

注释

配置 ER 格式时,请务必考虑 Excel 限制,以及单个页眉或页脚的最大字符数。

页眉组件

页眉组件用于在 Excel 工作簿中生成的工作表顶部填充页眉。 其使用方式与页脚组件使用方式一样。

编辑添加的 ER 格式

更新模板

可以选择操作窗格导入选项卡上的从 Excel 更新,以将更新后的模板导入到可编辑的 ER 格式中。 在此过程中,将把所选 Excel\文件组件的模板替换为新模板。 将与更新后 ER 模板的内容同步可编辑 ER 格式的内容。

  • 如果在可编辑格式中找不到 ER 格式组件,将为每个 Excel 名称自动创建一个新 ER 格式组件。
  • 如果找不到合适的 Excel 名称,则会从可编辑的 ER 格式中删除每个 ER 格式组件。

注释

如果要创建可编辑 ER 格式的可选工作表元素,请将创建 Excel 工作表格式元素选项设置为

如果可编辑 ER 格式中最初包含工作表元素,建议在导入更新后的模板时,将创建 Excel 工作表格式元素选项设置为。 否则,将从头开始创建原始工作表元素的所有嵌套元素。 因此,更新后的 ER 中将不包含重新创建的格式元素的所有绑定。

在“从 Excel 更新”对话框中创建 Excel 工作表格式元素。

在版本 10.0.28 及更高版本中,您可以使用更新 Excel 页眉和 Excel 页脚格式元素选项。

  • 当您将此选项设置为时,Excel 页眉和 Excel 页脚格式元素保持不变,即使已在 Excel 工作簿格式的导入模板的工作表中更新了相应的页眉或页脚也不例外。

  • 当您将此选项设置为,并且在 Excel 工作簿格式的导入模板的工作表中更新了相应的页眉或页脚时,Excel 页眉和 Excel 页脚格式元素将会更改。

    • 如果工作表页眉或页脚的结构未更改,或者仅被附加,则将更新相应的 Excel 页眉或 Excel 页脚格式元素的结构。 将保留嵌套在此 Excel 页眉或 Excel 页脚格式元素下的格式元素的绑定。
    • 如果工作表页眉或页脚的结构已更改,则将重新创建相应的 Excel 页眉或 Excel 页脚格式元素。 将删除嵌套在此 Excel 页眉或 Excel 页脚格式元素下的格式元素的绑定。

“Excel 的更新”对话框中的“更新 Excel 页眉和 Excel 页脚格式元素”选项。

若要详细了解此功能,请执行通过重新应用 Excel 模板修改电子报告格式中的步骤。

验证 ER 格式

验证可编辑的 ER 格式时,将执行一致性检查以确保当前所用 Excel 模板中包含 Excel 名称。 将通知您任何不一致。 将为某些不一致提供用于自动解决问题的选项。

验证错误消息。

控制 Excel 公式的计算

如果生成的传出文档为 Microsoft Excel 工作簿格式,该文档的某些单元格中可能包含 Excel 公式。 如果启用了支持在电子申报框架中使用 EPPlus 库功能,可以通过更改正在使用的 Excel 模板中的计算选项参数值来控制何时计算公式。

  • 如果选择自动,则每次为生成的文档附加新的范围、单元格等时,都将重新计算所有依赖 公式。

    注释

    这可能会导致包含多个相关公式的 Excel 模板出现性能问题。

  • 如果选择手动,则可避免在生成文档时重新计算公式。

    注释

    使用 Excel 打开生成的文档进行预览时,将手动强制重新计算公式。 如果配置的 ER 目标位置需要使用生成的文档,但 Excel 中无预览(PDF 转换、电子邮件等),请不要使用此选项,因为生成的文档中包含的公式中可能不包含值。

示例 1:格式化页脚内容

  1. 使用提供的 ER 配置生成可打印的自由文本发票 (FTI) 文档。

  2. 查看生成的文档的页脚。 请注意,它包含有关文档中的当前页码和页面总数的信息。

    查看 Excel 格式的生成文档的页脚。

  3. 在 ER 格式设计器中,打开样本 ER 格式以供审核。

    发票工作表的页脚是根据位于页脚组件下面的两个字符串组件的设置生成的:

    • 第一个字符串组件填写以下特殊格式代码以强制 Excel 应用特定格式:

      • &C – 将页脚文本居中对齐。
      • &"Segoe UI,Regular"&8 – 以大小为 8 磅的 "Segoe UI Regular" 字体显示页脚文本。
    • 第二个字符串组件填充的文本包含当前文档中的当前页码和页面总数。

    在“格式设计器”页面上查看页脚 ER 格式组件。

  4. 自定义示例 ER 格式以修改当前页面页脚:

    1. 创建派生的普通发票 (Excel) 自定义 ER 格式,此格式基于样本 ER 格式。

    2. 发票工作表的页脚组件添加第一对新字符串组件:

      1. 添加一个字符串组件,使公司名称左对齐并以 8 磅的 "Segoe UI Regular" 字体("&L&"Segoe UI,Regular"&8") 显示。
      2. 添加一个填写公司名称的字符串组件 (model.InvoiceBase.CompanyInfo.Name)。
    3. 发票工作表的页脚组件添加第二对新字符串组件:

      1. 添加一个字符串组件,使处理日期右对齐并以 8 磅的 "Segoe UI Regular" 字体("&R&"Segoe UI,Regular"&8") 显示。
      2. 添加一个以自定义格式 (" "&DATEFORMAT(SESSIONTODAY(), "yyyy-MM-dd")) 填写处理日期的字符串组件。

      在“格式设计器”页面上查看页脚 ER 格式组件。

    4. 完成草稿版本的派生普通发票 (Excel) 自定义 ER 格式。

  5. 配置打印管理,以使用派生的普通发票 (Excel) 自定义 ER 格式,而不是示例 ER 格式。

  6. 生成可打印的 FTI 文档,并查看生成的文档的页脚。

    查看 Excel 格式的生成文档的页脚。

示例 2:修复合并的单元格的 EPPlus 问题

您可以运行 ER 格式来生成 Excel 工作簿格式的传出文档。 当功能管理工作区中的支持在电子报告框架中使用 EPPlus 库功能启用时,EPPlus 库将用于创建 Excel 输出。 但是,由于已知的 Excel 行为和 EPPlus 库的限制,您可能会遇到以下异常:“无法删除/覆盖合并的单元格。 某个范围与另一个合并的范围部分合并。”要了解哪种 Excel 模板可能会导致此异常以及如何解决此问题,请完成以下示例。

  1. 在 Excel 桌面应用程序中,创建一个新的 Excel 工作簿。

  2. 在工作表 Sheet1 上,为单元格 A2 添加 ReportTitle 名称。

  3. 合并单元格 A1A2

    在 Excel 桌面应用程序中查看在设计的 Excel 工作簿中合并单元格 A1 和 A2 的结果。

  4. 配置页面上,添加新的 ER 格式以生成 Excel 工作簿格式的传出文档。

  5. 格式设计器页面,将设计好的 Excel 工作簿导入到添加的 ER 格式中,作为新的传出文档模板。

  6. 映射选项卡上,为单元格类型的 ReportTitle 组件配置绑定。

  7. 运行配置的 ER 格式。 注意将引发以下异常:“无法删除/覆盖合并的单元格。 某个范围与另一个合并的范围部分合并。”

    在格式设计器页面上查看运行配置的 ER 格式的结果。

您可以通过以下任一方式解决此问题:

  • 更简单但不建议:功能管理工作区中,关闭支持在电子报告框架中使用 EPPlus 库功能。 尽管此方法更简单,但如果使用它,您可能会遇到其他问题,因为仅当启用支持在电子报告框架中使用 EPPlus 库功能时才支持某些 ER 功能。

  • 建议:按照以下步骤操作:

    1. 在 Excel 桌面应用程序中,通过以下方式之一修改 Excel 工作簿:

      • 在工作表 Sheet1 上,取消合并单元格 A1A2
      • ReportTitle 名称的引用从 =Sheet1!$A$2 更改为 =Sheet1!$A$1

      在 Excel 桌面应用程序中查看在设计的 Excel 工作簿中更改引用的结果。

    2. 格式设计器页面上,将修改后的 Excel 工作簿导入到可编辑的 ER 格式,来更新现有模板。

    3. 运行修改后的 ER 格式。

      在 Excel 桌面应用程序中查看生成的文档。

限制

已知的 EPPlus 库限制

外部数据源

如果您的一个模板包含的透视表基于引用外部数据源的 PowerPivot 模型,并且启用了支持在电子报告框架中使用 EPPlus 库功能,则运行使用该模板以 Excel 格式生成出站文档的 ER 格式时,您将收到以下错误消息:“缓存源不是工作表”。若要解决此问题,请可以使用以下选项:

  • 建议:重新设计您正在使用的 Excel 解决方案:

    1. 隔离单独的 Excel 工作簿(工作簿 A)中包含数据透视的部分。
    2. 使用 ER 从 Finance 生成具有所需详细信息的第二个 Excel 工作簿(工作簿 B)。
    3. 生成工作簿 B 后立即在工作簿 A 中参考工作簿 B。
  • 关闭此功能,支持在电子报告框架中使用 EPPlus 库以使用 EPPlus 之外的选项。

其他资源

电子申报概览

设计用于生成 OPENXML 格式的报表的配置

通过重新应用 Excel 模板修改电子报告格式

使用可水平扩展的范围在 Excel 报表中动态添加列

使用 ER 在您生成的文档中嵌入图像和形状

配置电子申报 (ER) 以便将数据导入 Power BI