Tuesday, June 10, 2014

PowerPoint Export for SSRS Reports

Recently I put together a review of options available to export SSRS reports to PowerPoint. For those that have used SSRS for a while you know that it supports many different export formats including PDF, Excel, CSV, XML, TIFF, HTML and more recently Word and Atom data feeds. From those formats you can handle most capabilities that users are looking for, but a major hole still exists for use in PowerPoint. Since PowerPoint is part of the Microsoft Office suite you would think that Microsoft would want to cover all of the bases, especially after they added Word as an export format with SSRS 2008R2. But even as of SSRS 2014 there is still no native support to export to PowerPoint in SSRS. The below evaluation was meant to be as exhaustive as possible, but I'm sure there are some other ways that it can be done with automation or other means that I missed as it gets to the point where it just more and more steps to get it done.

After I created this documentation I did find that it is possible to use the Atom data feed to create a Power View report using that feed and then take advantage of the native PowerPoint export that is built into Power View. There is some documentation on this on TechNet, but this option requires SharePoint 2010 Enterprise with SSRS in integrated mode and Excel 2013 to put it all together. There are also some capabilities in Word/PowerPoint to embed Objects that reference the SSRS reports, but this is very similar to the LiveWeb option and I had a bunch of issues getting it work on my test system, so I chose not to mention it in the options below.

If you have found any other ways to get SSRS reports exported to PowerPoint, please post in the comments below and share it! There is a Microsoft Connect ticket that was created back in 2007 to add PowerPoint as a native export that is still active, if you want to see if we can get it added make sure to vote it up!

Summary


Aspose.Slides
LiveWeb
Custom Renderer
SSRS Word
SSRS Excel
SSRS TIFF
Easy to Install/Configure
3
3
1
4
4
4
Ease of Upgrading with SSRS
3
4
1
4
4
4
Report Changes Necessary
3
3
4*
4
4
4
Pages on Separate Slides
4
0
4*
1
0
2
Cost+
0
4
0
2
2
2
Average
2
3
2
3
3
3
Total
13
14
10
15
14
16

* Assuming renderer includes all capabilities
+ Lower rating when there is a cost ($ and/or man hours) separate from existing SSRS license


3rd Party SSRS Rendering Extensions
There are 2 possibilities that I found for this option, Aspose.Slides and LiveWeb. Aspose.Slides is a full SSRS rendering extension that works with all current versions of SSRS and adds multiple formats of PowerPoint export to ReportViewer (as shown in screenshot below):


Aspose.Slides supports all types of reports (tables, matrix, charts, graphs, etc.) that can be built in SSRS and will work with Report Builder. Some formatting of the reports will need to be taken into consideration to paginate properly in the PowerPoint exports, not that different than what has to be thought about for PDF export (make sure to setup landscape, margins, etc.). The install is very easy and for most installs does everything automatically even with multiple instances on the same computer. There is a cost associated with this as it is provided by Aspose, it is hard to tell which pricing structure will work best as is depends on the number of developers and servers they would plan to roll it out on. This page on Aspose’s site shows the pricing at a high level. This is the only option that will provide full PowerPoint export capabilities out of the box without extra steps.

LiveWeb is a freeware add-on for PowerPoint that allows you to embed a browser window in any PowerPoint slide. With this add-on a PowerPoint slide can be setup to point to a specific report on the SSRS server using the URL access built-in to SSRS to render the report inside of the slide. Because this is a browser embedded in the slide there will be no pagination as SSRS when accessed via a browser will assume that you do not want to see pagination and will make the whole report available by scrolling up and down in the browser window. This does also provide the capability to interact with the report within even the PowerPoint when it is in slide show mode, but if this is just being used to show static slides and each page is expected to be on a separate slide, this option will not work for that scenario. The install is very easy and works with all versions of PowerPoint from 2007 and forward. No changes will be required for the SSRS reports to work with this add-on.

Build Custom SSRS Rendering Extension

SSRS was built with the ability to extend/enhance all parts of the product by writing custom .NET code to do whatever the user would like if it is not something provided out of the box. While these extensions to SSRS can be very easy to write for some parts of the product, it can be extremely difficult for others. I have written a custom security extension for SSRS in the past and it only took a day or two to fully code and test. When I researched this for writing a custom rendering extension (Microsoft considers anything that shows the SSRS report in another form a renderer, even if it is only for export) the MSDN article specifically states that it is difficult and “requires you to implement hundreds of classes, interfaces, methods, and properties.” The other major issue with writing a custom rendering extension is there is no guarantee that the extension you write for SSRS 2012 will work with SSRS 2014 or any other future version as Microsoft is always changing the API for SSRS and those changes may break what previously worked fine. I saw this first hand with the security extension that I wrote originally for SSRS 2005, that had to be re-written for SSRS 2008R2. With custom rendering extensions the code has to know how to handle anything someone will put into an SSRS report, so that is what makes it that much more difficult to write. Because these extensions are written in a .NET language (C# or VB.NET) it will require a full license for Visual Studio as the BIDS (Business Intelligence Development Studio) and SSDT (SQL Server Developer Tools) do not include the capabilities to create C# or VB.NET projects. With Visual Studio 2013 it is possible to use the Express version that is free for this kind of development.

Use included export formats (PDF, Word, Excel, CSV, XML, TIFF, HTML)

It is possible to use the export formats that come with SSRS and still allow them to be shown in PowerPoint. Most of these options will require multiple steps to complete and may require manual intervention to complete successfully, but they will not cost anything extra in dollars to implement. The easiest to setup is using the Word export that is new with SSRS 2008R2, with this export you can easily copy/paste the Word version into a PowerPoint deck or even use the embedding of Word documents directly into PowerPoint (Word exports may have issues with pagination depending on the report and how it is formatted). With both the Word and Excel exports it would be possible for SSRS to be setup to automatically export the required reports to a file share on the network on a pre-defined schedule and then have the links to those files already setup in the PowerPoint decks and only require someone to open those decks and refresh them to get the latest version of the data from the reports. The other export formats supported by SSRS are not very helpful for embedding in PowerPoint. While it would seem that the TIFF (image) format would work, as it is just an image and it does generate an image per page, the issue I found in testing is that PowerPoint does not understand how to handle multiple pages in a TIFF image when importing it into a slide, so only the first page is imported. It would be possible to use another application to separate this single TIFF file by page, but that would be an extra step/process (freeware Image Magick can do this split via command line).