Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


DoddleReport generates a variety of reports from any IEnumerable datasource.

Out of the box it can render reports to Excel, PDF, HTML, and CSV – fully extensible of course. I designed the project to provide reporting output over the LINQ queries we had already written for the application, but maybe you can find other uses for it.

New to DoddleReport?

  • Look at the Building your first report page
  • If you’re using ASP.NET make sure to check out ASP.NET Reporting section
  • Review the DoddleReport.Sample.Web project in the solution
  • Check out the Wiki for advanced customization and configuration

Find it on NuGet

DoddleReport has been split into multiple packages to support more users’ needs. See their Descriptions within NuGet for more on the differences

Main package

  • Install-Package DoddleReport

ASP.NET integration

  • Install-Package DoddleReport.Web

Additional Report Writers

  • Install-Package DoddleReport.iTextSharp
  • Install-Package DoddleReport.AbcPdf
  • Install-Package DoddleReport.OpenXml

Basic Usage

// Get the data for the report (any IEnumerable will work) 
var query = ProductRepository.GetAll();

// Create the report and turn our query into a ReportSource 
var report = new Report(query.ToReportSource());

// Customize the Text Fields report.TextFields.Title = "Products Report";
report.TextFields.SubTitle = "This is a sample report showing how Doddle Report works";
report.TextFields.Footer = "Copyright 2016 © The Doddle Project";

// Render hints allow you to pass additional hints to the reports as they are being rendered 
report.RenderHints.BooleanCheckboxes = true;

// Customize the data fields report.DataFields["Id"].Hidden = true;
report.DataFields["Price"].DataFormatString = "{0:c}";
report.DataFields["LastPurchase"].DataFormatString = "{0:d}";

Live Samples!

To showcase the functionality take a look at the following sample reports, which are being generated live in real-time (notice the data will change every time you open the report)

Excel Report (OpenXML)

  • Creates a native Excel file using OpenXML
  • Requires the DoddleReport.OpenXml package
  • Automatic Sticky/Frozen Headers stay at the top when scrolling through the data
  • See it live!


PDF Reports

Using iTextSharp

  • Automatically repeats title and column headers numbers on every page
  • Requires the DoddleReport.iTextSharp package
  • See it live!

Using ABCpdf

  • Automatically repeats title and column headers numbers on every page
  • Requires the DoddleReport.AbcPdf package
  • Requires an ABCpdf license
  • See it live!




HTML Report



Generate custom reports (PDF, Excel, etc) from any IEnumerable datasource.




No releases published


No packages published