public void InsertTable(int numRows, int numColumns, BorderType border) { _table = _document.Tables.Add(_currentRange, numRows, numColumns, ref _missingObj, ref _missingObj); switch (border) { case BorderType.None: _table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleNone; _table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleNone; break; case BorderType.Single: _table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; _table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; break; case BorderType.Double: _table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleDouble; _table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleDouble; break; default: _table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleNone; _table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleNone; break; } _currentRange = _table.Range; _selection = new WordSelection(_currentRange, false); }
public void SetSelectionToBegin() { object start = 0; object end = 0; this._currentRange = this._document.Range(ref start, ref end); _selection = new WordSelection(_currentRange); }
public void SetSelectionToCell(int rowIndex, int columnIndex) { if (_table == null) { throw new Exception("Ошибка при выборе ячейки в таблице Word, не выбрана текущая таблица."); } _currentRange = _table.Cell(rowIndex, columnIndex).Range; _selection = new WordSelection(_currentRange, false); }
// выбор текста в документе для свойства selectedText ИЩЕТ ПЕРВОЕ ВХОЖДЕНИЕ public void SetSelectionToText(string stringToFind) { Word.Range foundRange = findRangeByString(stringToFind); if (foundRange == null) { throw new Exception("Ошибка при поиске текста в MS Word. Не удалось найти и выбрать заданный текст: " + stringToFind); } _currentRange = foundRange; _selection = new WordSelection(foundRange, false); }
// ВЫБИРАЕМ ТАБЛИЦУ ПО ПОРЯДКОВОМ НОМЕРУ НАЧИНАЯ С ЕДИНИЦЫ public void SelectTable(int tableNumber) { try { _table = _document.Tables[tableNumber]; } catch (Exception error) { throw new Exception("Таблица с номером " + tableNumber + " не найдена в документе Word. Подробности: " + error.Message); } _currentRange = _table.Range; _selection = new WordSelection(_table.Range, true, false); }
// ВСТАВЛЯЕМ ПУСТУЮ СТРАНИЦУ С ОДНИМ ПАРАГРАФОМ В КОНЦЕ, тупо добавляем пустые абзацы до появления следующей страницы public void InsertPageAtEnd() { object missing = Missing.Value; object what = Word.WdGoToItem.wdGoToLine; object which = Word.WdGoToDirection.wdGoToLast; Word.Range endRange = _document.GoTo(ref what, ref which, ref missing, ref missing); _currentRange = endRange; _selection = new WordSelection(endRange); // пока не изменится количество страниц вставляем пустые абзацы в конце int oldPagesCount = PagesCount; while (oldPagesCount == PagesCount) { InsertParagraphAfter(); } InsertParagraphAfter(); }
// вставляем пустой абзац, доступ к его тексту и свойствам через public void InsertParagraphAfter() { if (Closed) { throw new Exception("Ошибка при обращении к документу Word. Документ уже закрыт."); } // сворачиваем текущую позицию и переходим в ее конец Object collapseDirection = Word.WdCollapseDirection.wdCollapseEnd; try { _currentRange.Collapse(ref collapseDirection); //вставляем абзац _currentRange.InsertParagraphAfter(); _selection = new WordSelection(_currentRange); } catch (Exception wordError) { throw wordError; } }
// встаем на закладку, то есть получаем обьект Range по имени закладки и заноми его в переменужж экземпляра класса, доступную для других методов public void SetSelectionToBookmark(string bookmarkName, bool isParagraph) { if (Closed) { throw new Exception("Ошибка при обращении к документу Word. Документ уже закрыт."); } Object bookmarkNameObj = bookmarkName; Word.Range bookmarkRange = null; try { bookmarkRange = _document.Bookmarks.get_Item(ref bookmarkNameObj).Range; } catch (Exception error) { throw new Exception("Ошибка при поиске закладки " + bookmarkName + " в документе Word. Сообщение от Word: " + error.Message); } _currentRange = bookmarkRange; _selection = new WordSelection(_currentRange, isParagraph); }
// поиск и выбор текста в документе Word внутри строки-контейнера, сначала ищется контейнер, потом текст внутри него public void SetSelectionToText(string containerStr, string stringToFind) { Word.Range containerRange = null; Word.Range foundRange = null; containerRange = findRangeByString(containerStr); if (containerRange != null) { foundRange = findRangeByString(containerRange, stringToFind); } if (foundRange != null) { _currentRange = foundRange; _selection = new WordSelection(foundRange, false); } else { throw new Exception("Ошибка при поиске текста в MS Word. Не удалось найти заданную область для поиска текста: " + containerStr); } // завершение public void searchSelectText(string containerStr, string stringToFind) }