Asp.net - Создайте файл Powerpoint на лету

У меня есть клиент моего веб-приложения, которое активно использует данные из нашей системы для презентаций PowerPoint.

В настоящее время мы разрешаем экспорт данных в более традиционные типы файлов... PDF, CSV, HTML и некоторые другие. Powerpoint не кажется действительно автоматизированным.

Есть ли способ на стороне сервера ASP.NET автоматизировать создание и загрузку файла формата PowerPoint по запросу для отчета из системы?

Ответ 1

В в этой статье Стив предлагает использовать приложение Aspose Slide.

Он также объясняет шаг за шагом, как сгенерировать файл PowerPoint.

Вот несколько выдержек кода (в VB):

Открытие существующего файла PowerPoint:

 Dim fs As  System.IO.FileStream = _

   New System.IO.FileStream("c:\mypath\myfile.ppt", _

   System.IO.FileMode.Open, System.IO.FileAccess.Read)

Dim MyPres As Presentation = New Presentation(fs)

fs.Close() 

Завершение слайдов и вывод их форматов шаблонов:

Dim slides  As Slides = MyPres.Slides

For i As Integer = 0 To slides.Count - 1

   Response.Write(MyPres.Slides(i).Layout.ToString + "<br>")

Next

В своей статье он более подробно описывает, как это сделать.

Ответ 3

У вас есть два способа сделать это, без сторонних инструментов. Первый будет с Automation PowerPoint, но для этого требуется, чтобы на вашем сервере была установлена ​​PowerPoint. Второй способ - использовать новый формат файла файла pptx и сгенерировать документ PowerPoint с помощью XML.

Я обнаружил, что лучший способ начать работу на стороне XML - просто создать PowerPoint, который делает то, что вы хотите, а затем сохранить его и посмотреть на XML. Вы также можете просмотреть документацию по Microsoft. В целом работа с форматами XML довольно проста.

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

Ответ 4

В отношении предыдущего плаката ваше утверждение неверно.

У вас действительно есть только один вариант для автоматизации ASP.NET на стороне сервера. Используйте открытые ссылки xml, упомянутые Беном в исходном ответе...

Манипулирование файлами Excel 2007 и PowerPoint 2007 с API формата Open XML (часть 1 из 2) Манипулирование файлами Excel 2007 и PowerPoint 2007 с API формата Open XML (часть 2 из 2)

Причиной этого является то, что автоматизация офиса на стороне сервера полностью неподдерживается и является плохой практикой кодирования, серверы автоматизации компиляции, которые предназначены для интерактивного использования в неинтерактивной среде, являются потенциальным рецептом для катастрофы.

поэтому в резюме используйте открытый xml api и сгенерируйте ваши pptx's.

Ответ 5

Существуют и другие сторонние параметры, похожие на Aspose Slides, такие как OfficeWriter PowerPoint Writer.

Я не совсем уверен, как работает Aspose Slides, но с PowerPoint Writer у вас есть существующая форматированная презентация PowerPoint с маркерами данных в ней, вы обрабатываете ее с помощью PowerPoint Writer для замены данных маркерами данными. Вот несколько примеров .

Ответ 6

есть другой метод, преобразуйте презентацию Power Point в изображения или xps (презентация из серебра), а затем используйте какой-то json (jquery), чтобы показывать и загружать их.

i реализую изображения и презентацию xps silver light в моем веб-приложении