【问题标题】:XSL to Excel: Choose not processing formulaXSL 到 Excel:选择不处理公式
【发布时间】:2016-10-14 12:13:08
【问题描述】:

我用一个简单的 Excel 公式声明了一个变量(不是我最终会使用的公式,只是一些简单的测试)

<xsl:variable name="nistcci" ss:Formula="=RC19"></xsl:variable>

然后我尝试使用Choose来判断属性数据是否为空,然后根据判断返回。

<Cell ss:StyleID="stig_rules"> <!-- IA Control(s) -->
<Data ss:Type="String">
    <xsl:choose>
        <xsl:when test="STIG_DATA/VULN_ATTRIBUTE[node()='IA_Controls']/../ATTRIBUTE_DATA != ''">
            <xsl:value-of select="STIG_DATA/VULN_ATTRIBUTE[node()='IA_Controls']/../ATTRIBUTE_DATA" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$nistcci"/>
        </xsl:otherwise>
    </xsl:choose>
</Data>

如果我做一些简单的事情,这很有效:

&lt;xsl:variable name="nistcci"&gt;sean&lt;/xsl:variable&gt;

但不能使用引用变量中的公式。

感谢您的帮助。肖恩。

【问题讨论】:

    标签: excel xslt formula xsl-choose ss


    【解决方案1】:

    不清楚您希望变量包含什么。

    很明显,xsl:variable 指令不能有ss:Formula 属性,或除select 和(在XSLT 2.0 中)as 之外的任何其他属性。

    您的变量需要构造为:

    <xsl:variable name="myVar" select="myExpr"/>
    

    其中myExpr 必须是有效的 XPath 表达式。

    或者,你可以使用类似的东西:

    <xsl:variable name="myVar">
      <xsl:attribute name="ss:Formula">=RC19</xsl:attribute>
    </xsl:variable>
    

    构造一个包含属性的变量。

    【讨论】:

    • 仅使用 XSL 1.0 我试图让“=RC19”作为 Excel 公式填充到生成的 Excel 工作表中,而不仅仅是文本。
    • 仅使用 XSL 1.0。我试图让“=RC19”作为 Excel 公式填充到生成的 Excel 工作表中,而不仅仅是文本。我正在尝试将其放入 部分。即使上面提出的变量+属性也不会填充 excel 单元格。它们仍然是空白的。
    • @SeanPerryman AFAIK,为了获得公式,您需要将 ss:Formula 属性添加到 ss:Cell 元素。你的xsl:choosess:Data 的孩子,太晚了。
    猜你喜欢
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多