2012-08-23 2 views
1

У меня есть запрос на создание документа на словах на основе шаблона, предоставленного мне. Я провел некоторое исследование, и все, кажется, указывает на OpenXML. Я изучил это, но созданный файл cs имеет более 15 тыс. Строк и нарушает мой VS 2010 (заставляя его не реагировать каждый раз, когда я делаю изменения).Создать документ Word из шаблона

Я смотрел на этой серии учебных пособий по Open XML http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/10/13/getting-started-with-open-xml-development.aspx

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

ответ

1

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

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

Я не могу говорить о DOC файлов, но с DOCX файлов они не зашифрованы они просто пронестись файлы, которые содержат XML-файлы

Eric White's blog имеет большое количество примеров и образцов кода, которые были очень полезны

+0

Какие части вы должны были вынуть? Количество кода, создаваемого этим инструментом, безумно. –

+0

Итак, основная часть того, что я делаю, - это файл шаблона, который будет загружен в систему и сохранен как массив байтов. Файл шаблона содержит элементы управления содержимым, которые я использую в качестве меток места. Когда я его обрабатываю, я беру массив байтов шаблона, открываю его с помощью SDK OpenXML, а затем нахожу все элементы управления содержимым и заполняю их на основе идентификатора, а затем значение, сохраненное в базе данных. Я сильно использую шаблон и использую SDK в основном для замены текста. Инструмент SDK Я в основном использую, чтобы посмотреть, как его построить в коде, а затем я пишу его более чистым в коде. –

3

// Привет, Это довольно просто.

  //First, you should copy your Template file into another location. 
      string SourcePath = "C:\\MyTemplate.dotx"; 
      string DestPath = "C:\\MyDocument.docx"; 
      System.IO.File.Copy(SourcePath, DestPath); 

      //After copying the file, you can open a WordprocessingDocument using your Destination Path. 

      WordprocessingDocument Mydoc = WordprocessingDocument.Open(DestPath, true); 

      //After openning your document, you can change type of your document after adding additional parts into your document. 
      mydoc.ChangeDocumentType(WordprocessingDocumentType.Document); 

      //If you wish, you can edit your document 
      AttachedTemplate attachedTemplate1 = new AttachedTemplate() { Id = "MyRelationID" }; 

      MainDocumentPart mainPart = mydoc.MainDocumentPart; 
      MySettingsPart = mainPart.DocumentSettingsPart; 

      MySettingsPart.Settings.Append(attachedTemplate1); 

      MySettingsPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate", new Uri(CopyPath, UriKind.Absolute), "MyRelationID"); 



      //Finally you can save your document. 
      mainPart.Document.Save(); 
Смежные вопросы