asp.net — создание файла Powerpoint на лету
-
23-08-2019 - |
Вопрос
У меня есть клиент моего веб-приложения, который активно использует данные из нашей системы для презентаций Powerpoint.
В настоящее время мы разрешаем экспортировать данные в более традиционные типы файлов... PDF, CSV, HTML и некоторые другие.Powerpoint, похоже, не совсем автоматизирован.
Есть ли способ на стороне сервера ASP.NET автоматизировать создание и загрузку по требованию формата файла Powerpoint для отчета из системы?
Решение
В Эта статья, Стив предлагает использовать приложение 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
В своей статье он подробнее описывает, как это сделать.
Другие советы
В MSDN есть документация о формате OpenXML, который они используют:
Что ж, у вас есть два способа сделать это без сторонних инструментов.Первым будет автоматизация PowerPoint, но для этого необходимо, чтобы на вашем сервере был установлен PowerPoint.Второй — использовать новый формат файла pptx и сгенерировать документ PowerPoint с использованием XML.
Я обнаружил, что лучший способ начать работу с XML — это просто создать Powerpoint, который делает то, что вы хотите, затем сохранить его и просмотреть XML.Вы также можете просмотреть документацию Microsoft.В целом работать с форматами XML довольно легко.
Наконец, могут существовать некоторые сторонние элементы, но будьте осторожны, чтобы они не требовали автоматизации COM.
Что касается предыдущего постера, ваше утверждение неверно.
На самом деле у вас есть только один вариант автоматизации этого процесса с помощью ASP.NET на стороне сервера.Используйте открытые ссылки XML, упомянутые Беном в исходном ответе...
Манипулирование файлами Excel 2007 и PowerPoint 2007 с помощью файлов Open XML Format API (часть 1 из 2) Manipulaing Excel 2007 и PowerPoint 2007 с API Open XML Format (часть 2 из 2)
Причина этого в том, что автоматизация офиса на стороне сервера совершенно не поддерживается и является плохой практикой кодирования, а запуск серверов автоматизации com, предназначенных для интерактивного использования в неинтерактивной среде, является потенциальным рецептом катастрофы.
Итак, используйте открытый XML API и сгенерируйте свои pptx.
Существуют также другие сторонние варианты, похожие на Aspose Slides, например OfficeWriter. Автор PowerPoint.
Я не совсем уверен, как работает Aspose Slides, но с помощью PowerPoint Writer у вас есть существующая отформатированная презентация PowerPoint с маркерами данных, которую вы обрабатываете с помощью PowerPoint Writer, чтобы заменить маркеры данных данными.Вот некоторые Примеры.
есть другой метод: конвертируйте презентацию Power Point в изображения или xps (презентация с серебряным светом), а затем используйте какой-то json (jquery), чтобы показать и загрузить их.
я реализую изображения и презентацию xps silverlight в своем веб-приложении