2008-10-08 5 views
6

У меня есть шаблон в формате word (.docx) и вы хотите заменить некоторые заполнители в этом шаблоне своими собственными данными, знаете ли вы, где я могу найти подходящие классы для этого проекта? Мне было бы хорошо знать пространство имен. Существуют ли более новые классы для обработки текстовых документов в формате docx (xml), чем классы com? Спасибо за все ваши ответы, я надеюсь, что кто-то может помочь мне с моей проблемой.Заменить заполнители в текстовом документе с помощью C#

приветствует

Себастьяну

ответ

5

Новые офисные форматы (DOCX, XLSX, и т.д.) являются почтовые файлы, которые содержат набор XML-файлов. Имея это в виду, у вас есть несколько подходов.

  1. Вы можете использовать Open XML SDK, расположенный в http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en

  2. Вы можете распаковать файл DOCX, сделать поиск и замену для лексем, и молнии его обратно вверх.

Существует openxmldeveloper.org, который предназначен только для такого рода вещей. Кроме того, имейте в виду, что они уже отправляют бета-версию 2 SDK.

+2

FYI, v2.0 SDK с открытым XML теперь доступен здесь: http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en – 2010-04-20 13:59:37

0

Кстати, используя XML Я нашел это решение, которое находит все SDT-узлы

NameTable nt = new NameTable(); 
     XmlNamespaceManager nsManager = new XmlNamespaceManager(nt); 
     nsManager.AddNamespace("w", wordmlNamespace); 

     XmlDocument xDoc = new XmlDocument(); 
     xDoc.Load(doc.MainDocumentPart.GetStream()); 

     XmlNodeList nodeList = xDoc.SelectNodes(@"./w:document/w:body//w:sdt", nsManager); 

Это работает, но не Формат SDK 2.0 Open XML дать мне шанс для этого?

1

Я использовал этот:

IEnumerable test2 = от элемента в body.Elements() , где element.InnerText.Contains ("SDT") выберите элемент;

 Смежные вопросы

  • Нет связанных вопросов^_^