Вставка новых строк в Word с помощью OpenXML
Я использую openxml WordProcessingDocument для открытия шаблона Word и замены заполнителя x1 строкой. Это отлично работает, если мне не нужна строка, содержащая новую строку. Как я могу заменить x1 текстом, который может содержать новые строки, которые распознает слово? Я пробовал n r, но они не работают
просто чтобы объяснить дальше, когда шаблон word открыт, я прочитал его в StreamReader, а затем использовал .Заменить для замены x1.
4 ответов
чтобы вставить новые строки, вы должны добавить 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>
вот функция C#, которая возьмет строку, разделит ее на разрывы строк и отобразит ее в 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 );
}
хотя на этот вопрос уже ответили, У меня есть другой подход к решению таких вопросов, как:
как я могу сделать XXX с OpenXML??
в этом случае вы можете использовать мощный Microsoft OpenXML инструмент производительности (также известный как OpenXmlSdkTool). скачать тут.
- создать новый документ office
- добавьте в документ детали, которые вы хотели бы воспроизведение с помощью OpenXML SDK.
- откройте документ office с помощью Microsoft OpenXML инструмент производительности
- нажмите "отразить код"
- С правой стороны вы увидите теперь документ, отраженный в коде C#.