Вставка новых строк в Word с использованием OpenXML
Я использую openxml WordProcessingDocument, чтобы открыть шаблон Word и заменить placeholder x1 на строку. Это отлично работает, если мне не нужна строка, содержащая новую строку.
Как заменить x1 текстом, может содержать символы новой строки, которые распознает слово? Я пробовал \n\r, но они не работают
Просто, чтобы объяснить, когда откроется шаблон слова, я прочитал его в StreamReader, а затем воспользуюсь .Replace, чтобы заменить x1.
Ответы
Ответ 1
Чтобы вставить новые строки, вам нужно добавить экземпляр Break
в Run
.
Пример:
run.AppendChild(new Text("Hello"));
run.AppendChild(new Break());
run.AppendChild(new Text("world"));
Созданный XML будет выглядеть примерно так:
<w:r>
<w:t>Hello</w:t>
<w:br/>
<w:t>world</w:t>
</w:r>
Ответ 2
Здесь функция С#, которая возьмет строку, разделит ее на разрывы строк и отобразит в OpenXML. Чтобы использовать, создайте экземпляр Run и передайте его в функцию со строкой.
void parseTextForOpenXML( Run run, string textualData )
{
string[ ] newLineArray = { Environment.NewLine };
string[ ] textArray = textualData.Split( newLineArray, StringSplitOptions.None );
bool first = true;
foreach ( string line in textArray )
{
if ( ! first )
{
run.Append( new Break( ) );
}
first = false;
Text txt = new Text( );
txt.Text = line;
run.Append( txt );
}
Ответ 3
У меня такая же проблема, и в моем случае тэг <w:br />
работал.
Ответ 4
Хотя этот вопрос уже ответил, у меня есть другой подход к решению таких вопросов, как:
Как я могу сделать XXX с OpenXML??
В этом случае вы можете использовать мощный инструмент для повышения производительности Microsoft OpenXML (также известный как OpenXmlSdkTool). Загрузить здесь.
- Создать новый офисный документ
- Добавьте части к документу, который вы хотели бы воспроизвести с помощью OpenXML SDK.
- Откройте офисный документ с помощью инструментария для повышения производительности Microsoft OpenXML
- Нажмите "Код отражения"
- С правой стороны вы увидите, что теперь документ отражен в коде С#.