Другой вариант, который не был упомянут, который мы в конечном итоге выбрали, заключается в использовании файловых форматов Open XML , которые наивно поддерживаются в Office 2007 и в Office XP через пакет совместимости . Использование Open XML SDK 1.0 , чтобы получить что-то работающее, оказалось удивительно простым.
Сначала был подготовлен универсальный файл шаблона с токенами, размещенными вместо содержимого, которое необходимо заменить. Далее, ссылка на DocumentFormat.OpenXml должна быть добавлена в проект. Сам код будет ссылаться на пространства имен DocumentFormat.OpenXml и DocumentFormat.OpenXml.Packaging. Наконец, код для обхода слайдов выглядит следующим образом:
// Open the presentation
PresentationDocument presentation = PresentationDocument.Open(fileName, true);
// Loop through all of the slides in the presentation
foreach (SlidePart slide in presentation.PresentationPart.SlideParts)
{
// Read the XML out of the slide
XmlDocument xml = new XmlDocument();
xml.Load(slide.GetStream());
// TODO: Your XML manipulation code here
// Save the updated slide
xml.Save(slide.GetStream());
}
// Save the updated presentation
presentation.Close();