Заполните шаблон слова, используя C # в ASP.NET MVC3 - PullRequest
2 голосов
/ 24 февраля 2012

Я прочитал это сообщение, ссылающееся на Заполнить текстовые документы, но мне нужно заполнить текстовый документ (Office 2007) с помощью C #. Например, я хочу иметь текстовый документ с меткой [NAME], использовать эту метку в C #, чтобы поместить мое значение, и делать все это в контроллере ASP.NET MVC3. Есть идеи?

Ответы [ 3 ]

3 голосов
/ 24 февраля 2012

Вы можете использовать OpenXML SDK , предоставленный Microsoft, для работы с документами Word.И вот хорошая статья (на самом деле это третья серия из трех статей) с парой примеров.

0 голосов
/ 26 февраля 2015

Решение ОП извлечено из вопроса:

Решение, которое я нашел, таково:

static void Main(string[] args)
{
    Console.WriteLine("Starting up Word template updater ...");

    //get path to template and instance output
    string docTemplatePath = @"C:\Users\user\Desktop\Doc Offices XML\earth.docx";
    string docOutputPath = @"C:\Users\user\Desktop\Doc Offices XML\earth_Instance.docx";

    //create copy of template so that we don't overwrite it
    File.Copy(docTemplatePath, docOutputPath);

    Console.WriteLine("Created copy of template ...");

    //stand up object that reads the Word doc package
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true))
    {
        //create XML string matching custom XML part
        string newXml = "<root>" +
            "<Earth>Outer Space</Earth>" +
            "</root>";

        MainDocumentPart main = doc.MainDocumentPart;
        main.DeleteParts<CustomXmlPart>(main.CustomXmlParts);

        //MainDocumentPart mainPart = doc.AddMainDocumentPart();

        //add and write new XML part
        CustomXmlPart customXml = main.AddCustomXmlPart(CustomXmlPartType.CustomXml);
        using (StreamWriter ts = new StreamWriter(customXml.GetStream()))
        {

            ts.Write(newXml);
        }

        //closing WordprocessingDocument automatically saves the document
    }

    Console.WriteLine("Done");
    Console.ReadLine();
}
0 голосов
/ 06 ноября 2014

Вы можете сделать так: - Введите «печатки» в шаблон документа Word - Работа над копией вашего слова шаблона - Измените значения печатей из кода C # и сохраните или распечатайте файл.

Будьте осторожны с правильной версией вашего текстового процесса, если вы рассматриваете несколько документов в своем заявлении:)

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