/// <summary> /// Добавление новой таблицы /// </summary> /// <param name="numRows"></param> /// <param name="numColumns"></param> /// <param name="border"></param> 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); }
/// <summary> /// Поиск первого вхождения текста в документе для свойства selectedText /// </summary> 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); }
/// <summary> /// Выделение ячейки таблицы /// </summary> /// <param name="rowIndex"></param> /// <param name="columnIndex"></param> public void SetSelectionToCell(int rowIndex, int columnIndex) { if (_table == null) { throw new Exception("Ошибка при выборе ячейки в таблице Word, не выбрана текущая таблица."); } _currentRange = _table.Cell(rowIndex, columnIndex).Range; _currentRange.Font.Color = Word.WdColor.wdColorBlack; _selection = new WordSelection(_currentRange, false); }
/// <summary> /// Выбрать таблицу по порядковому номеру (с 1) /// </summary> /// <param name="tableNumber"></param> 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); }
/// <summary> /// Вставка пустой страницы с одним параграфом в конце /// </summary> 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(); }
/// <summary> /// вставляем пустой абзац, доступ к его тексту и свойствам /// </summary> 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; } }
/// <summary> /// встаем на закладку, то есть получаем обьект Range по имени закладки и заноми его в переменужж экземпляра класса, доступную для других методов /// </summary> /// <param name="bookmarkName"></param> /// <param name="isParagraph"></param> 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); }
/// <summary> /// Поиск и выбор текста в документе Word внутри строки-контейнера /// </summary> /// <param name="containerStr"></param> /// <param name="stringToFind"></param> 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) }