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
В своей статье он более подробно описывает, как это сделать.
Ответ 2
Там есть документация по MSDN о формате OpenXML, который они используют:
Ответ 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 в моем веб-приложении