我想将回车添加到生成Excel文件的XSLT文件中。我的情况是我在Excel单元格中有一个非常长的字符串。我希望文本在保留在单元格内时环绕。有什么建议?我尝试遵循建议here,但它对我的情况不起作用。
谈论样式注释,似乎我无法控制样式,无论我手动放在“样式”下,当我通过文本编辑器查看生成的excel文件时,我总是看到以下内容:
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Arial" ss:Bold="1"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
答案 0 :(得分:3)
我找到了解决如何在Excel XML中执行某些操作的方法,就是让Excel向您展示!换句话说,打开Excel,在包含回车的单个单元格中键入一些文本(执行ALT + ENTER以执行回车),将其另存为Excel XML,并在记事本中打开文件以查看正在进行的操作。
您应该看到的是,在文档的样式元素中,您的单元格应该有特定的样式
<Style ss:ID="s62">
<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
</Style>
因此,您需要更改XSLT以输出这样的样式。 ss:ID 属性可以是任何内容,但 ss:WrapText 属性在此处非常重要。显然,你可以将它与其他样式结合起来,比如将单元格加粗。
然后,对于单元格中的文本,您需要确保文本
按字面输出您想要换行的位置。
<Row ss:AutoFitHeight="0" ss:Height="33">
<Cell ss:StyleID="s62"><Data ss:Type="String">Testing Linebreak</Data></Cell>
</Row>
注意这里对StyleID的引用。就XSLT而言,要添加
字符串,您必须这样做
<xsl:value-of select="substring(text(), 1, 50)" />
<xsl:text disable-output-escaping="yes">&#10;</xsl:text>
<xsl:value-of select="substring(text(), 51, 50)" />
'disable-output-escaping'是为了阻止XSLT输出换行符而不是转义值的实际文本。