公式
XML网格视图中的公式用XQuery 3.1表达式来计算结果或生成可存储在文档中的节点集。公式是用XQuery 3.1表达式定义的。例如,在下方截图中,创建了一个名为MinTemps的公式,用来生成所有最低温度的集合中的最低、最高和平均温度。
要创建公式,请执行以下操作:
1.在您希望公式出现的位置添加一个新节点。
2.该节点将被默认创建为元素。将节点的类型更改为公式。
3.双击包含f(x)图标的单元格并输入公式的名称(参见上方截图)。
4.单击该图标将公式的输出保存到文档中。
5.双击表达式单元格并输入表达式,然后按Enter键。
<?xml version="1.0" encoding="UTF-8"?> <Temperatures> <Month name="January"> <Min>-5</Min> <Max>3</Max> </Month> <Month name="February"> <Min>-16</Min> <Max>1</Max> </Month> <Month name="March"> <Min>-9</Min> <Max>7</Max> </Month> <Month name="April"> <Min>2</Min> <Max>16</Max> </Month> <Month name="May"> <Min>8</Min> <Max>21</Max> </Month> <Month name="June"> <Min>12</Min> <Max>26</Max> </Month> <Month name="July"> <Min>14</Min> <Max>34</Max> </Month> <Month name="August"> <Min>16</Min> <Max>36</Max> </Month> <Month name="September"> <Min>11</Min> <Max>28</Max> </Month> <Month name="October"> <Min>10</Min> <Max>26</Max> </Month> <Month name="November"> <Min>-1</Min> <Max>14</Max> </Month> <Month name="December"> <Min>-3</Min> <Max>9</Max> </Month> </Temperatures>
|
concat( " MinMin=", min(//Month/Min), ", ", " MaxMin=", max(//Month/Min), ", ", " AvgMin=", avg(//Month/Min) )
|
请注意以下几点:
•公式的XQuery表达式的上下文节点是公式节点的父节点。
•要在一个表达式中添加新行,请按Ctrl+Enter。如果您想在多行中显示一个表达式以获得更好的可读性,这很有用。
•公式(即用于定义公式的表达式)存储在文档的元数据中(在应用程序范围的元数据文件中)。公式也可作为处理指令保存在XML文件中。
•公式生成的结果显示在公式的XQuery表达式下方的单元格中,并存储在文档的元数据中。结果也可以存储在文档中。为此,请单击XQuery表达式旁边的磁盘图标。无论您是否单击该图标,都会计算公式的结果并将其存储在文档的元数据中。
•如果公式的结果是一个计算,它将作为元素的内容存储,该元素具有您指定的公式名称。例如,上方截图中显示的MinTemps公式的结果将存储在名为MinTemps的元素中。
•转至工具 | 选项 | 视图 | 网格视图设置 以:(i) 指定是总是、仅在请求时,还是从不将公式存储在元数据中,(ii) 指定是否将公式存储在文档中。
表格中的公式
如果表格列的所有单元格(在表格显示中)包含相同的公式,则该公式将仅显示在列标题(参见下方截图)中。但是,公式的计算结果将显示在相应的单元格中。列标题中的公式是一种网格视图的表示方式。在XML文档(参见文本视图)中,公式将在每个表格行中重复。
如果单元格中的单个公式与其他公式不同,则每个公式都会显示在其对应的单元格中。如果表格列中的所有公式都相同,则公式会出现在标题中,并且您想为单个单元格创建不同的公式,请关闭表格显示功能并编辑该单元格的公式。当您切换回表格显示时,公式将显示在每个单元格中(适用于所有单元格)。