Создайте документ Word 2010 программно - PullRequest
5 голосов
/ 29 октября 2010

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

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

В общем, я хочу создать шаблон Word или консольное приложение, чтобы при открытии / запуске оно отключалось, собирало все эти вещи и связывало их с различными частями документа.

Предположим, мне нужно вставить:

  • Некоторая копия из другого документа Word
  • PNG (круговая диаграмма)
  • Создать таблицу из файла CSV
  • Иметь стандартный верхний и нижний колонтитулы с нумерацией страниц

Обычно я делаю несколько изменений в копии в документе, чтобы выделить основной момент недели.

Затем я проверяю его в SharePoint, где пользователи сети могут открывать и просматривать его.

Я полагаю, что нужно взломать VS2010 и создать проект Word Template. Я никогда не делал этого раньше, и мне было интересно, какие существуют ловушки или есть ли подходящий способ решения моей проблемы.

Моим другим вариантом будет какая-то мощная оболочка, но я там тоже не эксперт.

Мне было бы довольно комфортно писать консольные приложения, поэтому я мог бы в конечном итоге сделать это таким образом.

Помощь / Советы приветствуются.

Ответы [ 2 ]

4 голосов
/ 29 октября 2010

Я бы подошел к этой проблеме, разбив отдельные шаги, как если бы вы сидели перед пустым документом Word. Затем автоматизируйте его, используя объектную модель. Есть немного кривой обучения, но как только вы пройдете, вы будете зависимы от автоматизации Office. Офис - довольно мощная платформа. Большая часть того, что вы можете достичь с помощью пользовательского интерфейса, может быть сделано программно. Я делаю немного автоматизации с Excel. Код довольно интуитивно понятен ... такие вещи, как worksheet.Range ["A1"] = "abcd" (настройка ячейки A1 = "abcd").

вот несколько указателей:

http://support.microsoft.com/kb/316383

http://msdn.microsoft.com/en-us/library/ee861527.aspx

Если вы пройдете учебник по первой ссылке, вы поймете его суть. Что замечательно, так это то, что вы можете использовать отладчик для пошагового выполнения ваших строк кода. Когда каждая строка выполняется, вы можете увидеть результаты в документе Word. Я никогда не использовал проект Word Template, поэтому я не могу говорить о плюсах / минусах. Идя по маршруту объектной модели, вам просто нужно сформулировать, что вы хотите, чтобы происходило, разбить его на отдельные шаги, как вы бы их выполняли, а затем кодировать. Если вы застряли, вероятно, кто-то еще написал в блоге / опубликовал о том, как сделать что-то. Google найдет решение очень быстро. Удачи!

0 голосов
/ 29 октября 2010

У вас есть много вариантов:

  • автоматизировать Word
  • сделать это как макрос (точка)
  • создайте свой документ, используя Open XML SDK
  • 1010 * VSTO *

Возможно, вам лучше всего сначала сделать это с помощью макроса, хотя это старый VB6. Методы, которые вы быстро осваиваете, очень хорошо транслируются в другие подходы. Open XML SDK обладает тем преимуществом, что для создания документа не требуется Word.

...