C word вставить текст
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Рубрики
Свежие записи
Свежие комментарии
Архивы
Примеры финального кода с использованием приведенных в проекте классов
Вставка текста на закладку
Внутренне устройство этих классов и теоретические принципы работы Word разобраны в дальнейших статьях этого цикла.
Комментарии
WordDocument wordDoc что это такое. помогите. я код всталяю у меня все красным красно.
Все примеры кода на этой странице используют специальные классы для работы с Word, без этих классов они работать не будут.
Описывать определение классов это правило хорошего тона.
Денис:
WordDocument wordDoc что это такое. помогите. я код всталяю у меня все красным красно.
Вот и зачем вы такие умные сюда лезете.
Человек пришел сюда, чтобы чему-то научиться.
Задал первый вопрос, ты его сразу же отшил.
Петрос, если ты такой умный, то почему читаешь эти статьи?
Подскажите а как после в ставки текста из поля textbox вставляемый текст записать в бд.
Просто у меня после этого в бд записывает пустоту
Добрый день.
Большое спасибо за статью.
Ещё бы Вы сказали, где почитать про все эти "параграфы", что это такое и с чем их едят.
Вот сейчас вставляю программно картинки в ворд документ.
Надо, чтобы каждая картинка на новом листе, а они друг за другом идут.
Подскажите, можно что-либо сделать?
for (int i = 6; i > 0; i--)
// Add a page break.
object break_type3 = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
para.Range.InsertBreak(ref break_type3);
para = word_doc.Paragraphs.Add(ref missing);
if(i == 1)
Microsoft.Office.Interop.Word.InlineShape map = word_doc.InlineShapes.AddPicture(logoFileName);
map.Height = 200;
map.Width = 200;
map.Range.InsertAfter(Environment.NewLine + "Clinica: " + "Best" + Environment.NewLine +
"Doctor: " + "Petrov" + Environment.NewLine +
"Prof: " + "Doctor" + Environment.NewLine);
>
else
Microsoft.Office.Interop.Word.InlineShape map = word_doc.InlineShapes.AddPicture(imageName1);
map.Height = 120;
map.Width = 160;
map.Range.InsertAfter(Environment.NewLine + "Patient Name: " + "Sidorova A. A." + Environment.NewLine +
"Date: " + DateTime.Now.Date.ToString() + Environment.NewLine +
"Time: " + DateTime.Now.TimeOfDay.ToString() + Environment.NewLine +
"Picture Number " + i.ToString() + Environment.NewLine +
"Diagnose: " + "No yet" + Environment.NewLine);
>
>
в этом пошаговом руководстве показано, как создать панель действий в Microsoft Office документе Word. Панель действий содержит два элемента управления, которые собираются входные данные и затем отправляют текст в документ.
Применимость. Информация в этой статье относится к проектам уровня документа для Word.- Дополнительные сведения см. в разделе доступность функций по типам приложений Office и проектов.
В этом пошаговом руководстве описаны следующие задачи:
разработка интерфейса с помощью элементов управления Windows Forms в элементе управления панели действий.
Отображать панель действий при открытии приложения.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Предварительные требования
Для выполнения этого пошагового руководства требуются следующие компоненты:
Выпуск Visual Studio, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в статье Настройка компьютера для разработки решений Office.
Word 2013 или Word 2010.
Создание проекта
Первым шагом является создание документа Word.
Создание нового проекта
Создайте проект документа Word с именем Моя базовая панель действий. В мастере выберите создать новый документ. дополнительные сведения см. в разделе инструкции. создание проектов Office в Visual Studio.
Visual Studio открывает новый документ Word в конструкторе и добавляет к обозреватель решенийу проект панели "мои базовые действия ".
Добавление текста и закладок в документ
Панель действий будет передавать текст в закладки в документе. Чтобы разработать документ, введите текст для создания базовой формы.
Добавление текста в документ
Введите следующий текст в документ Word:
21 марта 2008 г.
имя;
Адрес
Это пример базовой панели действий в Word.
можно добавить Bookmark элемент управления в документ, перетащив его из панели элементов в Visual Studio или с помощью диалогового окна " закладка " в Word.
Добавление элемента управления Bookmark в документ
Перетащите элемент управления из вкладки элементы управления Word панели элементов в Bookmark документ.
Откроется диалоговое окно Добавление элемента управления Bookmark .
Выберите имя слова, не выбрав знак абзаца, и нажмите кнопку ОК.
Знак абзаца должен находиться за пределами закладки. если в документе не видны знаки абзаца, в меню сервис наведите указатель на пункт Microsoft Office Word tools и выберите пункт параметры. Перейдите на вкладку вид и установите флажок знаки абзаца в разделе знаки форматирования диалогового окна Параметры .
В окне Свойства измените значение свойства Name параметра Bookmark1 на шовнаме.
Выделите слово адрес, не выбирая знак абзаца.
На вкладке ленты Вставка в группе ссылки щелкните Закладка.
В диалоговом окне Закладка введите Шоваддресс в поле имя закладки и нажмите кнопку Добавить.
Добавление элементов управления на панель «действия»
чтобы создать интерфейс панели действий, добавьте в проект элемент управления панели действий, а затем добавьте Windows Forms элементы управления в элемент управления панели действий.
Добавление элемента управления панели действий
Выберите проект панели "Мои базовые действия " в Обозреватель решений.
В меню Проект выберите Добавить новый элемент.
В диалоговом окне Добавление нового элемента щелкните элемент Управление панелью действий, назовите элемент управления инсерттекстконтрол и нажмите кнопку Добавить.
добавление Windows элементов управления формы в элемент управления панели «действия»
Если элемент управления панели действий не отображается в конструкторе, дважды щелкните инсерттекстконтрол.
На вкладке Общие элементы управления панели элементов перетащите элемент управления Метка в элемент управления панель действий.
Измените свойство Text элемента управления Метка на имя.
Добавьте элемент управления TextBox в элемент управления панель действий и измените следующие свойства.
Добавьте второй элемент управления Label в элемент управления панели действий и измените свойство Text на Address.
Добавьте второй элемент управления TextBox в элемент управления панели действий и измените следующие свойства.
Добавьте элемент управления "Кнопка" в элемент управления панели действий и измените следующие свойства.
Добавление кода для вставки текста в документ
В области действия напишите код, который вставляет текст из текстовых полей в соответствующие Bookmark элементы управления в документе. Класс можно использовать Globals для доступа к элементам управления в документе из элементов управления на панели действия. дополнительные сведения см. в разделе глобальный доступ к объектам в Office проектах.
Вставка текста из панели «действия» в закладке в документе
Добавьте следующий код в Click обработчик событий кнопки addText .
Добавление кода для отображения панели действий
Чтобы отобразить панель действий, добавьте созданный элемент управления в коллекцию элементов управления.
Отображение панели «действия»
Создайте новый экземпляр элемента управления панели действий в ThisDocument классе.
Добавьте следующий код в Startup обработчик событий ThisDocument .
Тестирование приложения
Протестируйте документ, чтобы убедиться, что панель действий открывается при открытии документа и текст, введенный в текстовые поля, вставляется в закладки при нажатии кнопки.
Проверка документа
Нажмите клавишу F5 для запуска проекта.
Убедитесь, что панель действия видна.
Введите свое имя и адрес в текстовые поля на панели действия и нажмите кнопку Вставить.
Дальнейшие действия
Ниже приводятся некоторые из возможных последующих задач.
Создайте панель действий в Excel. дополнительные сведения см. в разделе руководство. добавление панели действий для Excel книг.
Привязка данных к элементам управления на панели действий. Дополнительные сведения см. в разделе Пошаговое руководство. Привязка данных к элементам управления на панели действий Word.
Существует три основных способа вставки текста в документы Microsoft Office Word:
вставка текста в диапазон;
замена текста в диапазоне на новый текст;
использование метода TypeText объекта Selection для вставки текста в позиции курсора или выделения.
Вы также можете вставить текст в элементы управления содержимым и закладки. Дополнительные сведения см. в разделе элементы управления содержимым и элемент управления Bookmark.
Применимо к: Сведения в этом разделе относятся к - проектам уровня документа и добавлению VSTO - в проектах для Word. Дополнительные сведения см. в разделе доступность функций по типам приложений Office и проектов.
Интересуетесь разработкой решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office имеют небольшой объем по сравнению с надстройками и решениями VSTO, и их можно создавать с помощью практически любой технологии веб-программирования, такой как HTML5, JavaScript, CSS3 и XML.
Вставить текст в диапазон
Используйте свойство Text объекта Range для вставки текста в документ.
Вставка текста в диапазон
Укажите диапазон в начале документа и вставьте текст New Text.
Следующий пример кода можно использовать в настройке на уровне документа.
Следующий пример кода можно использовать в надстройке VSTO. В этом примере кода используется активный документ.
Выберите объект Range , который был расширен от одного символа до длины вставленного текста.
Замена текста в диапазоне
Если указанный диапазон содержит текст, весь текст в диапазоне заменяется на вставленный текст.
Замена текста в диапазоне
Создайте объект Range , состоящий из первых 12 символов в документе.
Следующий пример кода можно использовать в настройке на уровне документа.
Следующий пример кода можно использовать в надстройке VSTO. В этом примере кода используется активный документ.
Замените эти символы строкой New Text.
Вставка текста с помощью TypeText
Метод TypeText вставляет текст в выделение. TypeText ведет себя по-разному в зависимости от параметров, заданных на компьютере пользователя. Код в следующей процедуре объявляет объектную переменную Selection , а также отключает параметр Overtype , если он включен. Если параметр Overtype включен, любой текст рядом с курсором будет перезаписан.
Вставка текста с помощью метода TypeText
Объявите переменную объекта Selection.
Отключите параметр Overtype , если он включен.
Проверьте, находится ли текущее выделение у точки вставки.
Если это так, код вставляет предложение с помощью TypeText, а затем знак абзаца с помощью метода TypeParagraph .
Код в блоке ElseIf проверяет, является ли выделение обычным блоком выделения. Если это так, другой блок If проверяет, включен ли параметр ReplaceSelection . Если это так, код использует метод Collapse выделения, чтобы свернуть его до точки вставки в начале выделенного блока текста. Вставьте текст и знак абзаца.
Если выделение не является точкой вставки или блоком выделенного текста, код в блоке Else не выполняет никаких действий.
Можно также использовать TypeBackspace метод Selection объекта, который имитирует функциональность клавиши Backspace на клавиатуре. Но когда дело доходит до вставки и изменения текста, объект Range предоставляет больше возможностей для управления.
В следующем примере показан полный код. Чтобы использовать этот пример, запустите код из класса ThisDocument или ThisAddIn в своем проекте.
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Рубрики
Свежие записи
Свежие комментарии
Архивы
Продолжение былинной саги про Office.Interop.Word. Самый простой способ вставить кусок текста в нужную часть Word-шаблона - использовать закладки. В отличие от текстовых меток закладки не надо искать, они невидимы и всегда имеют уникальное имя. Имея открытый в предыдущей части документ Word мы можем с легкостью получить диапазон-Range для закладки (bookmark).
Кроме банальной вставки текста хотелось бы его немного поформатировать - жирный/курсив, размер текста, выравнивание абзаца. Все это доступно через интерфейс Range.
Полужирное начертание через Range.Bold и курсив через Range.Italic. Надо заметить что вместо напрашивающегося bool эти свойства имеют тип int
Выравнивание текста задается через перечисление WdParagraphAlignment и свойство ParagraphFormat.Alignment
Надо заметить, что при вставке текста в диапазон текущее выравнивание заменяется выравниванием по центру, так что его лучше сохранять и восстанавливать.
Размер шрифта через свойство Size интерфейса Font. Оно имеет редкий тип float, хотя в реальности размер шрифта задается целым числом.
И напоследок рассмотрим вставку более объемного текста - нескольких абзацев подряд. Алгоритм достаточно прост, вставляем абзац, заполняем и форматируем, вставляем следующий. Используем метод Range.Collapse и перечисление CollapseDirection
Надо учитывать, что при заполнении вставленного таким образом абзаца текстом он сольется с предыдущим абзацом. Чтобы избежать этого надо при вставке текста добавлять к нему символ конца абзаца методом InsertParagraphAfter. Это не надо делать в случае вставки текста на текстовую метку, закладку или ячейку таблицы.
Еще одно свойство диапазона используется в основном при работе с таблицами - речь идет о границах (например ячейки в таблице) задаваемых через перечисление WdLineStyle и интерфейс Borders (для таблицы в целом такой метод не работает). В принципе границы можно задавать для любого куска документа.
Комментарии
Привет. Статьи очень мне помогли. Но вопрос есть к Вам. Как мне добавить Текущую дату, если на Закладке я добавил Контрол для вставки Даты через Sleector Date в Word?
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Рубрики
Свежие записи
Свежие комментарии
Архивы
1. Подключить нужные библиотеки
2. Открыть шаблон Word
3. Найти в нем нужное место
4. Вставить в него строку с информацией
1. Проект в студии у нас уже должен быть. В разделе Ссылки/References кликаем правой кнопкой, идем в "Добавить ссылку" и ищем Microsoft.Office.Interop.Word. В параметрах добавленной библиотеки ставим true в Копировать локально/Copy local, так как библиотеку надо копировать вместе с исполняемыми файлами проекта.
В код добавляем соответствующие using
2. Теперь вам предстоит провести много времени с замечательным интерфейсом Word, который представляет сам текстовый редактор и его потроха в виде разнообразных обьектов. Сейчас важны два - Application и Document. Переменные для них по ряду не очевидных причин лучше объявлять через интерфейсы.
Так же почти все функции Word требуют объектных параметров, даже если внутри них сидят простые строки и логические значения, так что лучше заранее сделать несколько оберток
Чтобы запустить Word и открыть в нем шаблон с диска (путь известен), потребуется примерно такой код
Принципиально важны два момента
1. Мы создаем неуправляемый ресурс, который не соберет сборщик мусора - отдельный процесс в памяти с приложением Word, если мы его не закроем и не выведем на экран, он так и останется там висеть до выключения компьютера. Более того такие ворды могут накапливаться незаметно для пользователя, программист-то еще прибьет их вручную. Заботиться о высвобождения неуправляемого ресурса должен программист.
2. По умолчанию Word запускается невидимым, на экран его выводим мы.
Для начала рассмотрим самый простой и примитивный вариант - поиск и замена строки в документе Word. Некоторые программисты так и работают - ставят в шаблон текстовую метку вроде @@nowDate и заменяют ее на нужное значение.
Пришло время познакомится с фундаментом работы с Word - великим и ужасным объектом Range. Его суть сложно описать словами -это некоторый произвольный кусок документа, диапазон (range), который может включать в себя все что угодно - от пары символов, до таблиц, закладок и прочих интересных вещей. Не стоит путать его с Selection - куском документа, выделенным мышкой, который само собой можно конвертировать в Range. Соотвественно нам надо получить Range для всего документа, найти нужную строку внутри него, получить Range для этой строки и уже внутри этого последнего диапазона заменить текст на требуемый. И не стоит забывать, что документ может иметь сложную структуру с колонтитулами и прочей ересью, возможный универсальный метод для замены всех вхождений данной строки:
На самом деле это не самый лучший метод для вставки информации в документ, так как могут возникнуть сложности с уникальными именами для текстовых меток (если текст одной входит в начало другой, данный метод найдет ее и заменит), их совпадением с произвольным текстом и так далее.
Даже если нам надо найти (и например отформатировать) именно строку с текстом внутри документа, лучше всего выдать наружу найденный Range и уже с ним производить разные злодеяния. Получим примерно такой метод:
Простейшее решение проблемы уникальности текста (нужно нам найти Range слова Word, но внутри всего документа оно встречается десятки раз) - искать строку внутри строки, сначала найти уникальную строку, потом не уникальную внутри нее, неэстетично, но дешево, надежно и практично.
Если строку надо просто заменить, то сойдет простейшее
Но так как Range является универсальный контейнером для любого куска документа Word, то его возможности неизмеримо шире, часть их будет рассмотрена в дальнейших заметках.
Если нам надо просто встать в начало документа (и что-то вставить уже туда):
Читайте также: