XML-ленты в Excel в полях
Я пытаюсь получить следующую строку для вывода в ячейку в Excel, используя возможности XML 2003 "Cheese\nBread", и в данный момент она игнорирует разрыв строки.
Если я создаю файл с желаемым эффектом, я получаю следующий вывод
<Cell ss:StyleID="s62"><Data ss:Type="String">Cheese Monkey</Data></Cell>
Итак, я пытаюсь сделать...
text.Replace('\n',(char)10);
или text.Replace("\n"," ");
Безрезультатно, первое не делает ничего полезного, а во втором XmlWriter просто избегает его с &, что действительно полезно.
Любые идеи, может быть, настройка.NET XmlWriter?
2 ответа
Попробуйте установить xml:space="preserve"
на Data
элемент:
<Cell ss:StyleID="s62"><Data ss:Type="String" xml:space="preserve">Cheese
Monkey</Data></Cell>
Мне пришлось добавить следующее в мое определение XML (в элементе "Рабочая книга"):
<Styles>
<Style ss:ID="sMultiLine">
<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
</Style>
</Styles>
А затем, в элементе "Cell", добавьте соответствующий соответствующий стиль:
<Cell ss:StyleID="sMultiLine">
На самом деле я добавил незначительную корректировку XSLT, чтобы это значение отображалось только в том случае, если в содержимом обнаружены новые строки:
<xsl:if test="contains(.,'#10;')">
<xsl:attribute name="ss:StyleID">sMultiLine</xsl:attribute>
</xsl:if>