如何使用 xslt 在 Excel 单元格中插入任何内容/空文本?

发布于 2024-10-24 12:48:54 字数 665 浏览 1 评论 0原文

我正在通过 xslt 创建 Excel xml 工作簿。其中一个日期字段通常为 NULL,在这种情况下我不需要向单元格中插入任何内容。目前,即使我没有指定任何值,值 -146087 仍被输入到单元格中。然后,当单元格采用日期格式时,它会显示为哈希值。

我可以在标签之间放置什么

<xsl:otherwise></xsl:otherswise>

这是 xslt...

<Cell>
  <Data ss:Type="DateTime">
    <xsl:choose>
      <xsl:when test="substring(EOI_StartDate, 0, 11)">
        <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
      </xsl:when>
      <xsl:otherwise>

      </xsl:otherwise>
    </xsl:choose>
  </Data>
  <NamedCell ss:Name="_FilterDatabase"/>
</Cell>

I'm creating a Excel xml workbook via xslt. One of the date fields is often NULL and I need to not insert anything into the cell when this is the case. At the moment even though I'm not specifying anything the value -146087 is being entered into the cell. This is then displayed as hashes as the cell is date formatted.

What can I put between the

<xsl:otherwise></xsl:otherswise>

tags?

Here's the xslt...

<Cell>
  <Data ss:Type="DateTime">
    <xsl:choose>
      <xsl:when test="substring(EOI_StartDate, 0, 11)">
        <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
      </xsl:when>
      <xsl:otherwise>

      </xsl:otherwise>
    </xsl:choose>
  </Data>
  <NamedCell ss:Name="_FilterDatabase"/>
</Cell>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最丧也最甜 2024-10-31 12:48:54

从你的问题看来,你想要产生:

<Data/>

在条件不满足的情况下。

最简单的方法不是使用 而是使用更简单的

<Data ss:Type="DateTime">
  <xsl:if test="substring(EOI_StartDate, 0, 11)">
    <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
  </xsl:if>
</Data>

或者,如果您想省略 < code>元素完全如果不满足条件,则:

<xsl:if test="substring(EOI_StartDate, 0, 11)">
  <Data ss:Type="DateTime">
    <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
  </Data>
</xsl:if>

最后,如果 元素必须保留在那里,但您不希望它这样如果不满足条件,则视为日期,请执行以下操作:

<xsl:choose>
  <xsl:when test="substring(EOI_StartDate, 0, 11)">
    <Data ss:Type="DateTime">
            <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
    </Data>
  </xsl:when>
  <xsl:otherwise>
    <Data ss:Type="String"> </Data>
  </xsl:otherwise>
</xsl:choose>

It seems from your question that you want to produce:

<Data/>

in the case when the condition is not fulfilled.

The simplest way to do this is not to use <xsl:choose> but the simpler <xsl:if>:

<Data ss:Type="DateTime">
  <xsl:if test="substring(EOI_StartDate, 0, 11)">
    <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
  </xsl:if>
</Data>

Or, in case you want to omit the <Data> element completely if the condition is not satisfied, then:

<xsl:if test="substring(EOI_StartDate, 0, 11)">
  <Data ss:Type="DateTime">
    <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
  </Data>
</xsl:if>

Finally, if the <Data> element must stay there, but you don't want it to be treated as date if the condition is not satisfied, do this:

<xsl:choose>
  <xsl:when test="substring(EOI_StartDate, 0, 11)">
    <Data ss:Type="DateTime">
            <xsl:value-of select="substring(EOI_StartDate, 0, 11)"/>
    </Data>
  </xsl:when>
  <xsl:otherwise>
    <Data ss:Type="String"> </Data>
  </xsl:otherwise>
</xsl:choose>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文