2016-10-14 51 views
0

我聲明瞭一個簡單的Excel公式(而不是公式我最終會使用,只是一些簡單的測試)XSL到Excel:不願意處理公式

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

於是我試圖用一個選擇的變量以確定屬性數據是否爲空,然後基於該確定返回。

<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> 

這工作,如果我不喜歡簡單的東西:

<xsl:variable name="nistcci">sean</xsl:variable>

但不與所引用的變量中的公式工作。

感謝您的幫助。肖恩。

回答

0

目前還不清楚你想讓變量包含什麼。

這是很清楚的是,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> 

構建保存屬性的變量。

+0

僅使用XSL 1.0我試圖讓「= RC19」作爲Excel公式填充到生成的Excel工作表中,而不僅僅是文本。 –

+0

僅使用XSL 1.0。我試圖讓「= RC19」作爲Excel公式填充到生成的Excel工作表中,而不僅僅是文本。我試圖把它放到部分。即使是上面提出的變量+屬性也不會填充excel單元格。他們仍然是空白的。 –

+0

@SeanPerryman AFAIK,爲了有一個公式,你需要在'ss:Cell'元素中添加一個'ss:Formula'屬性。你的'xsl:choose'是'ss:Data'的子節點,這太遲了。 –