Изменить или добавить шаблон в Word-документ - PullRequest
3 голосов
/ 09 июня 2011

Я бы хотел изменить шаблон из множества документов Word, используя простую C # -программу.

Все эти документы основаны на стандартном шаблоне для стилей заголовков, шрифтов и т. Д. Мы хотели бы изменить этот шаблон (более конкретно: цвета заголовков и другие мелочи) и изменить текущие документы, чтобы использовать этот новый шаблон.

В Word это легко сделать, щелкнув «Шаблон документа» на вкладке «Дизайнер» на ленте. Я использовал это руководство для этого. Это прекрасно работает и делает именно то, что должно: изменяет цвета заголовков и т. Д. В соответствии с новым шаблоном.

Итак, вопрос прост: как мне сделать одно и то же (прикрепить другой шаблон и изменить стили) из .NET-приложения?

Полагаю, мне следует использовать пространство имен Microsoft.Office.Interop.Word, но я застрял там ...

1 Ответ

2 голосов
/ 10 июня 2011

Мне удалось решить это самостоятельно, не так уж и сложно. Это код, который я использовал:

        object missing = System.Reflection.Missing.Value;
        Word.Application wordApp = new Word.ApplicationClass();
        Word.Document aDoc = null;
        object readOnly = false;
        object isVisible = false;

        wordApp.Visible = false;
        object filename = "d:\\Testdocs\\testfile.doc";
        object saveAs = "d:\\Testdocs\\output.doc";
        object oTemplate = "d:\\Testdocs\\Template.dotx";

        aDoc = wordApp.Documents.Add(ref oTemplate, ref missing,
                                     ref missing, ref missing);

        aDoc = wordApp.Documents.Open(ref filename, ref missing,
                                      ref readOnly, ref missing, ref missing,
                                      ref missing, ref missing, ref missing,
                                      ref missing, ref missing, ref missing,
                                      ref isVisible, ref missing, ref missing,
                                      ref missing, ref missing);

        aDoc.Activate();
        aDoc.set_AttachedTemplate(oTemplate);
        aDoc.UpdateStyles();

        aDoc.SaveAs(ref saveAs, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing);

        aDoc.Close(ref missing, ref missing, ref missing);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...