Новые строки в электронной таблице ML при чтении в Excel

Я пытаюсь написать XSLT для создания Spreadsheet ML, который затем будет прочитан Excel и столкнется с проблемой с символами новой строки. Мне нужно добавить новую строку в данные ячейки. Я сделал образец в Excel, чтобы проверить идею Excel о новой строке и получил следующее:

<Data>abc&#10;def</Data>

Здесь &#10; ссылка - это новая строка, и Excel прекрасно это понимает, когда читает файл обратно. Я пытаюсь произвести то же самое с XSLT, но, естественно, вместо этого я получаю истинный символ 0x0A (LF), поэтому мой XML выглядит так:

<Data>abc
def</Data

Кажется, это не согласуется с способом представления новой строки в Excel, и когда я открываю файл в Excel, я не вижу новой строки.

Я пытался исследовать проблему, но ничего не получил, кроме следующего короткого обсуждения, которое на самом деле не дает решения и предполагает, что это может быть ошибкой в ​​Excel. (ОБНОВЛЕНИЕ: Насколько я понимаю, это то, что спецификации называют "случайностями кодирования", и синтаксический анализатор XML не должен полагаться на них, в отличие от Excel.)

Есть ли способ как-то обойти это и получить буквальный &#10; в выводе вместо символа НЧ? Или может решить это по-другому?

1 ответ

Решение

Да, в Excel есть свой способ различать LF символ и ссылка на символ &#10; к этому персонажу.

Я думаю, с XSLT 1.0, если вы хотите, чтобы заставить ссылку на символ, то делать <xsl:text disable-output-escaping="yes"><![CDATA[&#10;]]></xsl:text> путь грубой силы.

Другие вопросы по тегам