Interop word c
Записная книжка программиста-новичка, C#, SQL, PHP и все-все-все
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Навигация по записям
Работаем с MS Word из C#, часть 1. Открываем шаблон, ищем текст внутри документа
Задача: вывести данные в документ Word. На самом деле это очень большая и необъятная тема, примерно как сам Word, 90% возможностей которого не используются обычными пользователями. Сузим до более простой и чаще встречающейся на практике задачи, с которой в своей время пришлось столкнуться мне самому: надо вывести красивую справку, договор, отчет или иной документ Word с добавлением данных из кода C#. Само собой должны поддерживаться версии Word до 2007, так что о новых форматах файлов придется забыть.
Для начала вспомним, что в Word есть такая замечательная вещь как шаблоны. Соответственно большую часть сложного оформления можно вынести в них и из кода открывать шаблон и вставлять данные в нужные места. Для начала ограничимся простыми строками (типовая задача в крупных предприятиях — вставка дат, цифр, фио и тому подобных вещей, договор на сумму такую-то, от такой-то даты с фио таким-то с параметрами объекта такими-то).
Задача на текущую статью: открыть из кода C# шаблон Word и что-то в него вставить. Шаблон в формате .dot приготовим заранее, в том же самом ворде. Для связи с ним будем использовать механизм COM Interoperability (сокращенно Interop), то есть запускать отдельный exe-процесс самого Word и через специальный интерфейс управлять им. Интерфейсы слава богу есть и находятся они в специальных библиотеках, поставляемых вместе с Office, но документация по ним крайне невнятная, поведение местами очень странное и не логичное. В версиях Visual Studio 2010 и выше возможности программирования Office расширены, но текущее руководство действительно и для 2008 студии.
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, то его возможности неизмеримо шире, часть их будет рассмотрена в дальнейших заметках.
Если нам надо просто встать в начало документа (и что-то вставить уже туда):
Сохранить документ на диск можно следующим образом
Работа с документами Microsoft Word, Часть 1. Программное создание документа: Справочник по C#
Большинству операций, выполняемых программным способом, есть эквиваленты в пользовательском интерфейсе (UI), доступные как команды в меню и на панелях инструментов. Также существует нижележащая архитектура, обеспечивающая поддержку команд, выбираемых из UI. Всякий раз, когда вы создаете новый документ Word, он базируется на каком-либо шаблоне; расширение файлов шаблонов «.dot», а файлы документов – «.doc». Шаблон Word может содержать текст, код, стили, панели инструментов, элементы автотекста, комбинации клавиш для быстрого доступа к командам. Новый документ связывается с шаблоном и получает полный доступ к его элементам. Если вы не указываете конкретный шаблон, новый документ создается на основе стандартного шаблона «Normal.dot», который устанавливается при установке Word).
Для работы с приложением Microsoft Word в .NET, используется объект Application, который является предком всех остальных объектов. Получив на него ссылку, вы можете работать с его методами и свойствами. Этот объект предоставляет большой набор методов и свойств, позволяющих программным путем управлять Microsoft Word. Код инициализации нового объекта Application, представлен ниже.
Чтобы открыть существующий документ или создать новый, необходимо создать новый объект Document.
Выполняя какую-либо операцию в пользовательском интерфейсе Word (например, добавляя верхний колонтитул), вы выделяете соответствующую секцию, используя объект «Selection», определяющий текущую позицию «невидимого» курсора и применяете к ней новый параметр форматирования с использованием объекта «Range». Данный объект представляет область в документе и может включать в себя все что угодно – от пары символов, до таблиц, закладок и много другого. Вы не ограничены одним объектом «Range» – в одном документе можно определить сразу несколько таких объектов.
Чтобы добавить текст в документ, необходимо указать позицию для вставки и сам текст.
Так же вы можете применить к тексту определенный стиль.
В классе Microsoft.Office.Interop.Word.Document, присутствует коллекция «Tables», которая позволяет добавить таблицу в документ с использованием метода Add.
Для функционирования описанного выше кода, необходимо добавить к текущему проекту объектную библиотеку MS Word. Перейдите в меню «Проект» и выберете команду «Добавить ссылку» или в обозревателе решений, найдите пункт «Ссылки» и сделайте клик правой клавишей мыши по нему, из появившегося контекстного меню выберете соответствующий пункт.
В открывшемся окне «Добавить ссылку», перейдите на вкладку «COM» и выберете «Microsoft Word 14.0 Object Library» из предложенного списка библиотек.
В обозревателе решений у вас появится ссылка на данную библиотеку.
Перейдите в конструктор главной формы и добавьте из панели элементов, командную кнопку «Button». Данный элемент необходим для запуска процесса создания документа и вызов MS Word для отображения.
Сделайте двойной клик левой клавишей мыши по элементу «Button» и вы перейдете в автоматически созданный метод события «button1_Click». Добавьте в него приведенный ниже код.
Запустите ваш проект, нажав на клавиатуре, клавишу «F5». Нажмите на единственную кнопку, расположенную на главной форме вашего проекта. У вас автоматически откроется документ Microsoft Word с заполненным верхним и нижним колонтитулом, обычным и с применением стиля текстом, а так же заполненной таблицей.
Interop word c
ActiveDocument is not always available — WIndowsModification — display shaded / protected areas ??
Creating command buttons from outside the VSTO solution
If you put creating the button «outside» the VSTO solution, then you need to be careful to set the CustomizationContext = this.InnerObject (Me.InnerObject) so that the button is specific to the VSTO document. (By default, Word will probably try to put it in Normal.dot). Pass InnerObject to the method as an argument of the Word.Document variable type.
Word VSTO
With Word, you must consider CustomizationContext (look it up in Word’s object model Help). You either add the buttons within the context of a specific document (or the template to which it is attached), or you place them in a globally loaded template. If you don’t specify, the Word may put them in one place, then remove them somewhere else, or tell you it exists when, in reality it doesn’t in the particular context.
VSTO can be used to customise the behaviour of a particular document or a set of documents created from a common template
Word templates in VSTO behave different to word templates with VBA code
VBA Templates — VBA code in the template and in the document can run concurrently
VSTO Templates — .NET code in the template is associated with the document when it is created. Can you have code associated with the document and more/different code associated with the template linked to that document.
F4 not repeating commands
Style Id = 2321
Autotext Id = 2205
Print Layout instead of Print View
Open Word and display the (Tools > Options)(View tab).
Should the text in brackets be changed to (Print Layout only).
Maximum Number of Undos
There is no option to change the maximum number of undos.
Although in PowerPoint it is possible (Tools > Options)(Edit tab, «Maximum number of undo»).
Inconsistent Shortcut Keys
In Excel both these shortcuts close all workbooks and not just the active one.
(Alt + F4) — Closes the active document (saving first) and the exits Word if it is the last document.
(Alt + Shift + F4) — Closes the active document (saving first) and the exits Word if it is the last document.
Ruler cannot be toggled
It is only possible to toggle the display of the ruler from (View > Ruler) when there is an open document
Is there any reason for this ?
The following Properties should be added
The following properties should be added to the Selection object instead of having to use the Range property.
The following Methods should be added
Word Normal Changes
If you create «temporary» commands from VBA there is no «changes to Normal» prompt.
However if you create any «temporary» commands from .NET add-ins there is a «changes to normal» prompt.
Normal.dot Exists
In Word 2002 and Word 2003 the Normal.dot is not automatically created when Word is opened as was the case in the previous versions.
In both these versions the Normal.dot may or may not actually exist.
If the Normal.dot template does not exist then the following message will be displayed the first time Word is opened.
Normal.dot Changes
Any changes to the toolbars & menus are automatically stored in the Normal.dot template.
This creates a real problem and the only way round it is to explicitly not save these changes.
To confuse the issue even more the (Tools > COM Add-ins) command needs to be permanently added.
There are two places where you must add additional code:
Explicit Datatype Conversion
Differences
The following line returns 0 in VBA
The following line returns -1 in VSTO
Installing the Add-in
The first time an add-in is installed and loaded the following dialog box will be displayed.
The change that this refers to is the adding of the COM Add-ins command to the Tools drop-down menu.
This command gives you access to all your COM Add-ins and should be permanently added to your Menu Bar.
The toolbar and menu changes that are then made are not saved to your Normal.dot.
If you want to make any manual changes to your toolbars and menus then you should do this before loading the add-in.
Making manual toolbar & menu changes
Select (Tools > COM Add-ins) and unselect any of the Better Solutions add-ins.
Close and exit Word.
Open Word and make your changes to the toolbars and menus.
Select (Tools > COM Add-ins) and select the Better Solutions add-ins.
The above prompt will be displayed again and this will refer to the manual changes you have just made.
Do not make any manual changes to the toolbars and menus while a Better Solutions add-in is installed.
Windows Forms
You are unable to change the order of the windows if you create a new document when you have a windows form displayed
This only happens when the (Tools > Options)(View tab, «Windows in Taskbar») is selected.
Bug — Visual Studio 2008
Word 2007 add-in
error «cannot access a disposed object» — smarttags ??
Declaring Events
You need to use the ApplicationEvents4_Event interface and the DocumentEvents2_Event interface
When you want to define an event using the Application or Document objects.
This casting must be done when you declare any events, not just ones that have a conflicting method and event name
Из опыта автоматизации Word на языке C# на примере создания оглавления Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вильданов А.Н.
Описан алгоритм создания содержания документа в формате MS Word на языке C# в среде Microsoft Visual Studio 2010 Express (на примере сборника трудов конференции). Программно встраиваемое содержание имеет возможность автоматического обновления нумерации страниц. Исследованы возможности C# по форматированию текста вордовского документа, сохранению в формат PDF и т. п. Приведены основные команды по работе с документом Word на языке C#. Разработанное в статье приложение показывает, что с помощью C# можно достаточно эффективно решать широкий круг задач, связанных с автоматизацией рутинных действий с документами Microsoft Word . Рассмотренные в статье приемы и методы могут оказаться полезными при разработке подобных десктопных приложений. Ключевые слова : Microsoft Word , COM , C#, Microsoft Visual Studio 2010 Express .
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Вильданов А.Н.
From experience of Word automation in C# language on the example of creation of contents
Describes the algorithm for creating the contents of a document in MS Word format in C# language in Microsoft Visual Studio 2010 Express environment (using the collection of conference proceedings as an example). Programmatically embeddable content has the ability to automatically update page numbering. The possibilities of C# for formatting the text of the Word document, saving in PDF format, etc. are explored. The main commands for working with the Word document in C# are given. The application developed in the article shows that using C# can solve quite effectively a wide range of tasks related to automation of routine actions with Microsoft Word documents. The techniques and methods discussed in this article can be useful in the development of such desktop applications.
Текст научной работы на тему «Из опыта автоматизации Word на языке C# на примере создания оглавления»
Cloud of Science. 2018. T. 5. № 1 http:/ / cloudofscience.ru
Из опыта автоматизации Word на языке C# на примере создания оглавления
Нефтекамский филиал Башкирский государственный университет 452681, Нефтекамск, ул. Трактовая, 1
Аннотация. Описан алгоритм создания содержания документа в формате MS Word на языке C# в среде Microsoft Visual Studio 2010 Express (на примере сборника трудов конференции). Программно встраиваемое содержание имеет возможность автоматического обновления нумерации страниц. Исследованы возможности C# по форматированию текста вор-довского документа, сохранению в формат PDF и т. п. Приведены основные команды по работе с документом Word на языке C#. Разработанное в статье приложение показывает, что с помощью C# можно достаточно эффективно решать широкий круг задач, связанных с автоматизацией рутинных действий с документами Microsoft Word. Рассмотренные в статье приемы и методы могут оказаться полезными при разработке подобных десктопных приложений.
Ключевые слова: Microsoft Word, COM, C#, Microsoft Visual Studio 2010 Express.
1. Постановка задачи
Как известно, Microsoft Word является COM-объектом [1], т. е. спроектирован таким образом, что позволяет другим программам подключаться к себе и управлять им. Программно можно проделать практически все операции, которые мы делаем вручную в Word: создать новый документ, внести в него правки, сохранить его и т. п. Для такой автоматизации действий можно, например, подключиться к MS Word с помощью таких языков программирования высокого уровня, как Delphi, C++, C# и т. д. Можно, конечно, и просто создать макрос прямо внутри документа на языке Visual Basic for Applications. Как делать — дело вкуса, привычки и квалификации программиста.
В данной работе выбор пал на язык C#, который позволяет достаточно быстро создать прототип приложения для Windows. Имеется в виду, что язык C# сразу (без дополнительных библиотек) содержит готовые классы и методы, отвечающие за решения многих современных актуальных задач для десктопных приложений в ОС семейства Windows.
В качестве среды программирования в работе выбрана среда Microsoft Visual Studio 2010 Express. Несмотря на год выпуска, набор средств для создания приложений в нем весьма внушителен, имеется большой плюс — бесплатность.
Одной из распространенных задач при работе с документами является создание содержания. Понятно, что для достаточно больших документов ручная работа по его созданию становится тяжелой. Word имеет достаточно много средств и настроек для создания автоматического содержания (например, в Microsoft Word 2010 это подменю «Ссылки» ^ «Оглавление»). Но в некоторых случаях этот способ не подходит. Представим себе, например, сборник трудов конференции. Тогда заголовок и авторы могут находиться на разных строках (рис. 1):
ОСОБЕННОСТИ II ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ ДИАЛОГОВЫХ ПОЛЬЗОВАТЕЛЬСКИХ ИНТЕРФЕЙСОВ
ФГБ ОУ В О «Ба шкирский го суд арсгв енны й у нивер ситег»
ФГБ ОУ В О «Ба шкирский го суд арств енны й у нив ер сигег» Аннотация: в статье рассматриваются особенности взаимодействия Рисунок 1. Пример заголовка статьи конференции
2. Предлагаемый алгоритм решения
Как можно решить задачу составления содержания в таком случае? Желательно, чтобы нумерация страниц в содержании могла автоматически обновляться при внесении изменений в документ. В данной статье предлагается следующий способ. Нужно разметить в документе те элементы, которые мы собираемся разместить в содержании, определенными стилями. После пройтись по всему документу и сохранить в специальном массиве все встреченные элементы с созданными стилями.
Например, создадим и отформатируем стиль для заголовков статьи. Дадим ему, например, название «header_article». Для упрощения программирования стили будем присваивать не отдельным словам и предложениям, а целым абзацам. При нашем подходе он не обязательно должен иметь стиль заголовка, а может быть создан на основе стиля обычного абзаца.
Для авторов придумаем стиль «author». В сборник конференций в содержание могут входить и названия секций. Поэтому предусмотрим стиль «section_name». Таким образом пробежимся по всему документу и обработаем все статьи (рис. 2.).
1Г АаБбВ author А4ББ1 header_art. ААББ sectionji. ДаБбВвГг, ИОбычный ДаБбВвГг, АаБбВ АаБбВ в: И Без инте. Заголово. Заголово. Ааь Название
2 ] 4 5 i 3 L0 11 12 1] 14 15 1£ Д
ОСОБЕННОСТИ И ПРЕ11МУ ШЕСТВДИСПО ЛЬЗ ОВАНИЯ ДИАЛОГОВЫХ ПОЛЬЗОВАТЕЛЬСКИХ ШГГЕЕфЕЙСОВ
д.ф.-м.н.. профессор. ФГБОУ ВО «Башкирский государственный университет»
Петров ПИ. к.ф.-м.н.. доцент.
ФГБОУ ВО «Башкирский государственный университет»
Рисунок 2. Присвоение стилей
Каким теперь будет алгоритм для составления содержания? Сначала нужно организовать цикл по всем абзацам документа, в котором:
— считываются текст и стиль абзаца;
— для абзацев с заголовком статьи, со стилем «header_article», создаются закладки с названием вида «bookMarkParagN», где N — номер абзаца (можно, конечно, называть и по-другому);
— авторы статьи и название (заголовок) статьи сохраняются в массиве SelParagraphs.
Обежав весь документ, мы получим массив с данными о названиях всех статей и об их авторах. По этому массиву уже можно построить содержание, например, в виде таблицы из двух столбцов. В первом столбце размещаются авторы статьи и название статьи. Во втором столбце создаются перекрестные ссылки на номера страниц закладок.
3. Программная реализация
Итак, создадим в среде Microsoft Visual Studio 2010 Express новое приложение Windows Forms. Чтобы в нашем приложении были доступны классы Microsoft Word, нужно добавить ссылку на соответствующую библиотеку. Выбираем в меню «Проект» ^ «Добавить ссылку», открываем вкладку COM, выбираем Microsoft
Word 14.0 Object Library (рис. 3). Цифра зависит от версии установленного MS Word.
[Щ Добавить ссылку
■MET» I СОМ I Проекты | Обзор Последние файлы]
M Mn KownoHËHTa Версия 6_ Путь ‘
Microsoft Windows Common Controls 5.0 (SP2] 1.3 С WindowsSysWOW64comctl32.ooi
Microsoft Windows Common Controls 6.0 (SP6J za С. Window5SysWOW64MSCOMCTL.OCX
Microsoft Windows Common Controls-26.0 (S. га с Wi п d owsVSysWOW64Vm scom ct2. oa
Microsoft Windows Image Acquisition Library v. 1.0 с WindowsSystem32wiaaut.dll
Microsoft Windows Installer Object Library 1.0 с Windowssystem32m si. dll
Microsoft Windows Media Player Network Shar. 1.0 с ‘.Program Files (x86>Windows Media Playerwmpnssci.dll
Microsoft WinHTTP Services, version 5.1 51 с Windowssystem32winhttp.dll
Microsoft WMI Scripting VI.2 Library 1.2 с Windowssystem32wbemwbemdisp.7LB
1 Microsoft Word 14.0 Object Library aj с VProgram Files (x86JMicrosoft OfficeOfficel4M SWORD,OLB
Microsoft WSMAN Automation VI.0 Library 1.0 с WindowsSysWOW64WsmAuto.dll
Microsoft XML, v3.0 3J> с. WindowsSystem32mc(mB.dll
Microsoft XML, v6.0 6Л с Windows3ystem32msmil6.dll
Microsoft,TeamFoundation.Officelnteg ration. C. 17 a с ‘.Program FilesCommon FilesMicrosoft £haredTeam Foundatioi
Рисунок 3. Подключение библиотеки для работы с MS Word
Теперь нам доступны методы пространства имен Microsoft.Office.Interop.Word. Для упрощения обращений к нему создадим псевдоним для него: using Word = Microsoft.Office.Interop.Word;
Нам понадобятся две глобальные переменные для работы с Word [2]: Word._Application app; Word._Document doc;
Первая переменная представляет, собственно, само приложение MS Word, а вторая — наш вордовский документ.
Создадим класс contents для хранения информации об элементах будущего содержания:
public string authors=»»; public string article_name=»»;
public string bookMark=»»; >
Пункты authors и article_name хранят информацию об авторах статьи и название статьи. Поле bookMark будет хранить название закладки на заголовок статьи. Чтобы в полученном содержании иметь возможность автоматического обновления нумерации страниц, нужно будет создать перекрестные ссылки на созданные закладки.
Итак, сначала пробежимся по всем абзацам текста. Многие основные текстовые единицы в Word представляют собой коллекции [3] (объекты, напоминающие массивы, со встроенными методами и свойствами). Например, абзацы представляют собой коллекцию Paragraphs, закладки — коллекцию Bookmarks и т. д. [4]. Нужно иметь в виду, что нумерация в коллекциях начинается с единицы (в отличие, например, от массивов в Java, где первый элемент имеет номер ноль). Запускаем цикл:
C# как получить автоматический номер заголовка в Word Interop
У меня есть код (как только ниже), который проходит через все абзацы и находит определенную строку. Когда я нахожу строку, я распечатываю автоматический номер заголовка, к которому она принадлежит. Проблема, я хочу номер заголовка, а также и не могу понять, как его получить. Код здесь:
Изменить: очищенный код с рабочим контентом
1 Ответ
Каждый раз, когда я перечитываю вашу информацию, у меня возникает ощущение, что я не совсем понимаю, о чем вы просите, поэтому следующее может содержать больше информации, чем вы ищете.
Чтобы получить нумерацию конкретного абзаца:
Слово имеет некоторые встроенные закладки, которые могут дать вам информацию, которая в противном случае много работы, чтобы определить. Один из них-HeadingLevel. это получает первый абзац, отформатированный со стилем заголовка, который предшествует SELECTION. И это самая неприятная часть, потому что мы действительно не хотим делать выбор. Но это восходит к старым WordBasic дням, когда код имитировал действия пользователя, поэтому мы застряли с этим.
Вызов закладки сам по себе изменит выбор NOT.
Другой вариант, который я вижу, поскольку вы уже зацикливаете коллекцию абзацев, — это проверить paragraph.Range.Style и, если он начинается со строки «Heading» (предполагая, что это не используется иначе в стилях этих документов), сохранить ListFormat.ListString , чтобы вы могли вызвать его, если ваше условие выполнено.
Однако я должен задаться вопросом, почему вы «walking» коллекция абзацев и не используете встроенную функцию поиска Word, поскольку это было бы намного быстрее. Он может искать текст AND (стиль) форматирования.
Похожие вопросы:
No Name Sex 1 A M 2 B F 3 C F 4 D M Я хочу получить автоматический номер на таблице с базой данных mysql. Так как же это сделать?
У меня возникли проблемы в MS Word interop. Я использую VC++, но я также буду принимать предложения в C#. В документе word, имеющем номер страницы, указанный в нижнем колонтитуле, когда я использую.
Я хочу создать файл doc и скопировать часть содержимого в другой файл doc, используя word interop и c# .е.г Это мой doc file.I будет вставлять только эту часть в другой файл doc. Rest часть текста.
В настоящее время я пытаюсь редактировать ячейки объекта электронной таблицы excel с помощью c# interop. Я вставил его в документ word в качестве объекта. Пока там мне не удалось запрограммировать.
Я создаю программу C#, которая вставляет таблицу в документ word. Теперь мне нужно вставить таблицу в определенную позицию в разных документах word. Все документы word/шаблоны, которые у меня есть.
Как вставить backspace в c# word interop? Я пробовал использовать myRange.InsertBefore(bb); , но ничего не делает. Я также пробовал myRange.Delete(Type.Missing); , но удаляет все содержимое.
как я могу получить номер страницы в ms word с помощью пространства имен microsoft.office.interop.word in C#. пожалуйста, помогите мне.
Я использую word 2010 и управление DSOFramer для встроенного документа word в приложении winforms, и мне нужно войти в режим редактирования заголовка я использую код ниже : if.
как я могу вставить и запустить макрос в документ word, используя Interop в c#?