Вставить текст после динамически созданной таблицы в слово, используя VSTO - PullRequest
1 голос
/ 21 июля 2009

Как с помощью VSTO и Word 2003 можно вставить текст после созданной таблицы? У меня есть код как

bookmarkDescriptions = (object)"bookmarkDescriptions";
Word.Range rangeDescriptions = aDoc.Bookmarks.get_Item(ref bookmarkDescriptions).Range;

foreach (var item in items)
{
    //Add a paragraph with some text
    Table descTable = aDoc.Tables.Add(oSelection.Range, 1, 2, ref missing, ref missing);
    //Insert some text into the cells
    //Add a another paragraph with some text
}

когда я добавляю другой абзац текста, он добавляется в таблицу, но я хочу его после таблицы. Поскольку мне нужно перебрать все элементы и создать какой-то текст - абзац - еще немного текста для каждого из них, я не понимаю, как можно использовать закладку, чтобы получить диапазон после и за пределами таблицы.

1 Ответ

4 голосов
/ 22 июля 2009

Я только что решил проблему. Я использую следующий код.

object oLineUnit = (object) Word.WdUnits.wdLine;
object oCountOne = (object) 1;
object oCellUnit = (object) Word.WdUnits.wdCell;

oSelection.MoveRight(ref oCellUnit, ref missing, ref missing);
oSelection.MoveDown(ref oLineUnit, ref oCountTwo, ref missing);

Лучший способ разобраться в объектной модели Word состоит в том, чтобы записать макрос в Word, а затем посмотреть на исходный код, чтобы увидеть, какие вызовы API выполняются, и затем воспроизвести его в выбранной вами среде. НТН.

...