Я получаю вложенные таблицы, но мне нужны отдельные таблицы (Netoffice,Word)

Я написал WPF-приложение для печати документов Word с несколькими таблицами в нем, оно работает, но вместо разделенных таблиц я получаю вложенные таблицы.

Я смотрел на разные посты, но все они работали не очень хорошо, например:

Так же, как я пытался записать макрос со словом, который дал мне

Selection.MoveDown Unit:=wdLine, Count:=1

и я превратил это в:

wordApplication.Selection.MoveDown(WdUnits.wdLine, 1);

или даже:

wordApplication.Selection.MoveDown(WdUnits.wdLine, 11);

Это начало моего исходного кода:

using System.Drawing;
using System.Reflection;
using NetOffice;
using Word = NetOffice.WordApi;
using NetOffice.WordApi.Enums;
using System.Globalization;
using System.Windows;
...
Word.Application wordApplication ...
Word.Document newDocument = wordApplication.Documents.Add();

Это первая таблица:

        Word.Table table = newDocument.Tables.Add(wordApplication.Selection.Range, 6, 2);

        // insert some text into the cells
        table.Cell(1, 1).Select();
        wordApplication.Selection.TypeText("...");
...

Это вторая таблица, но текст помещается в последнюю ячейку моей первой таблицы (последняя ячейка):

            Word.Table tableSchool = newDocument.Tables.Add(wordApplication.Selection.Range, 4, 2, WdDefaultTableBehavior.wdWord9TableBehavior);
        tableSchool.Cell(1, 1).Select();
        wordApplication.Selection.TypeText("...");
...

обновлено. 17 июня, 9 часов вечера

Я нашел что-то, что помещает курсор вне таблицы, но это в начале файла, это не должно быть:

    wordApplication.Selection.GoToNext(WdGoToItem.wdGoToSection);
    wordApplication.Selection.TypeText("GoToNext");

обновлено. 17 июня, 21:30

Использование "InsertAfter" работает в зависимости от того, куда я поместил это утверждение, но это все равно не решает мою проблему.

    wordApplication.Selection.Range.InsertAfter("test2");

    Word.Table table = newDocument.Tables.Add(wordApplication.Selection.Range, 4, 2, WdDefaultTableBehavior.wdWord9TableBehavior);

Это должно быть скорректировано "wordApplication.Selection.Range" к какому-то типу "InsertAfter", объединяя две вещи, которые я обнаружил.

обновлено 18.06 07:30

Если я использую это, я получаю "ComException"(макро-рекордер показал мне это):

wordApplication.Selection.MoveRight(WdUnits.wdCharacter, 1);
        wordApplication.Selection.TypeParagraph();

обновлено 18.06 07:45

Затем я обнаружил, что это довольно близко к моей цели (но заменяет последнюю ячейку предыдущей таблицы):

            wordApplication.Selection.EndKey(WdUnits.wdStory, WdMovementType.wdExtend);
        wordApplication.ActiveWindow.Selection.PasteAndFormat(WdRecoveryType.wdPasteDefault);

Заранее спасибо:)

0 ответов

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