通过 .Net 在 Python 中智能导入和定位数据的智能标记

介绍

智能标记 用于让 Aspose.Cells 知道在 Microsoft Excel 设计人员电子表格中放置什么信息。智能标记允许您创建只包含特定信息和格式的模板。

设计器电子表格和智能标记

设计者电子表格是包含可视格式、公式和智能标记的标准 Excel 文件。它们可以包含引用一个或多个数据源的智能标记,例如来自项目和相关联系人信息的信息。智能标记被写入您希望信息放入的单元格中。

所有智能标记都以 &= 开头。数据标记的示例是 &=Party.FullName。如果数据标记结果超过一个项,例如一个完整的行,则接下来的行会被自动移动下来以为新信息腾出空间。因此,可以在数据标记后的行上立即放置小计和总计,以便根据插入的数据进行计算。要在插入行上进行计算,使用动态公式

智能标记由数据源字段名称部分组成。还可以使用变量和变量数组传递特殊信息。变量始终只填充一个单元格,而变量数组可以填充多个单元格。每个单元格只使用一个数据标记。未使用的智能标记将被移除。

智能标记还可以包含参数。参数允许您修改信息的布局方式。它们以逗号分隔的列表形式附加在智能标记的末尾作为括号内。

智能标记选项

&=数据源.字段名称 &=[数据源].[字段名称] &=$变量名 &=$变量数组 &==动态公式 &=&=重复动态公式

参数

允许以下参数:

  • noadd - 不添加额外的行以适应数据。
  • skip:n - 跳过每个数据行的n行。
  • ascending:ndescending:n - 对智能标记中的数据进行排序。如果 n 为 1,则该列是排序器的第一个关键。在处理数据源后对数据进行排序。例如:&=Table1.Field3(ascending:1)。
  • horizontal - 将数据从左至右书写,而不是从上至下。
  • numeric - 如果可能的话,将文本转换为数字。
  • shift - 向下或向右移动,创建额外的行或列以适应数据。shift 参数的工作方式与 Microsoft Excel 中的相同。例如,在 Microsoft Excel 中,当您选择一系列单元格,右键单击并选择 插入,然后指定?向下移动单元格向右移动单元格 和其他选项。简而言之,shift 参数为垂直/正常(自上而下)或水平(自左而右)的智能标记填充了相同的功能。
  • copystyle - 将基本单元格的样式复制到该列中的所有单元格。

参数 noadd 和 skip 可以组合在一起,以在交替行中插入数据。因为模板是从底部到顶部进行处理的,所以应在第一行上添加 noadd 以避免在交替行之前插入额外行。

如果有多个参数,请用逗号分隔它们,但不要有空格:parameterA,parameterB,parameterC

以下屏幕截图显示了如何在每隔一行插入数据。

模板文件 输出文件
todo:image_alt_text todo:image_alt_text

动态公式

动态公式允许您将 Excel 公式插入单元格,即使公式引用在导出过程中将被插入的行。动态公式可以针对每个插入的行重复,或者仅使用数据标记所在的单元格。

动态公式允许以下附加选项:

  • r - 当前行数。
  • 2、-1 - 相对于当前行数的偏移量。

例如:

 &=&=B{-1}/C{-1}~(skip:1)

在动态公式标记中,“-1” 表示设置 B 列和 C 列的当前行偏移量,用于除法操作,skip 参数为一行。此外,我们应该指定以下字符:

 "~"

作为分隔符使用,以应用动态公式中的进一步参数。

以下截图展示了一个重复的动态公式以及生成的 Excel 工作表。

模板文件 输出文件
todo:image_alt_text todo:image_alt_text
单元格"C1"包含公式 = A1*B1,单元格"C2"包含 = A2*B2,单元格"C3"包含 = A3*B3

处理智能标记非常简单。以下是通过 .Net 的 Python 代码片段,显示了如何完成这个操作。