Подтвердить что ты не робот

Вставка новых строк в Word с использованием OpenXML

Я использую openxml WordProcessingDocument, чтобы открыть шаблон Word и заменить placeholder x1 на строку. Это отлично работает, если мне не нужна строка, содержащая новую строку. Как заменить x1 текстом, может содержать символы новой строки, которые распознает слово? Я пробовал \n\r, но они не работают

Просто, чтобы объяснить, когда откроется шаблон слова, я прочитал его в StreamReader, а затем воспользуюсь .Replace, чтобы заменить x1.

4b9b3361

Ответ 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
  • Нажмите "Код отражения"
  • С правой стороны вы увидите, что теперь документ отражен в коде С#.