With OfficeWriter, Reporting Services reports can be
designed directly from Word and Excel with the OfficeWriter Designer, a special
toolbar that is very easy to use. This gives Microsoft Office users the
ability to modify existing reports without requiring them to wait on
developers, open Visual Studio, or even leave Office. Office users can even
create their own reports, but this functionality is disabled by default as most
organizations prefer to use OfficeWriter Designer to help create a layer of
separation between logic and presentation. Under this paradigm, developers and
IT professionals can create data models by joining data from various sources
and placing it into a report definition where business users can modify the
presentation of the report data to their heart's content (assuming they have
been given necessary permissions).
Once designed, reports created or modified with the
OfficeWriter Designer are modified with a special bit of base-64 encoded
goodness that is "injected" in to the report's definition file. On
the reporting server, these extra instructions are completely ignored unless
the report is requested for export via OfficeWriter's custom rendering
extensions. This means that any existing reports modified by the OfficeWriter
Designer will continue to function just as they always did. In fact, they can
still be natively exported to a low-functionality version of Excel. However,
when requested for export via the custom OfficeWriter rendering extensions, the
base-64 encoded goodness is used to recreate a native Excel or Word document
that faithfully matches the template created in the OfficeWriter Designer. With
this template hydrated on the server, OfficeWriter renders extensions then
replaces specialized "data-markers" with actual report data pulled
from the datasets defined in the report's RDL file. The result is a beautiful
fusion of Reporting Services data into a completely native Word document or
Excel spreadsheet that preserves native formatting and functionality as defined
during design.
Even better, because OfficeWriter is just generating native
Word and Excel documents on the server and programmatically populating them
with Reporting Services data, it is possible to "intercept" rendered
reports and use the object models exposed by OfficeWriter to programmatically
add embellishments, modifications, and other formatting as desired. In this
way a single Reporting Services report can be customized for individual users
or specific regions and needs. For example, a sales company that wanted to
give customized quotes to customers could use a single SSRS report to output
data with various parameters, but contact information within the report could
easily be switched programmatically for each sales associate creating the
report.