Skip to content
George Polevoy edited this page Oct 31, 2016 · 8 revisions

JumboExcel - Performant and easy to use OpenXml export framework for .NET

Core features

Uses only managed NET components.

Optimized for heavy-load server environments.

Thread safe, single export operation per thread (progressive version requires external synchronization per document).

Lazy evaluation over an IEnumerable allows for exporting huge Excel tables (tens of millions of rows) in a server environment without accumulating memory overhead.

Minimalistic API - single line can be used to generate entire Excel table from IEnumerable.

Supports basic formatting and outlining.

NuGet

Please check out the NuGet packages.

Build status

Development branch

Travis Build Status

Appveyor Build status

Release roadmap

  • v1.0.1 is available. It's production tested with .xsls documents compatible with Microsoft Excel 2010.
  • v1.0.2 It will have few breaking changes in the API. In v1.0.2 we are going to tighten up API contracts, so probably some optional parameters to constructors will require explicit default values from the client.

API design principles

Jumbo Excel library is designed to the twofold performance principle: Do the big thing with a single stomp.

This apparent simplicity is achieved with internal sophistication. You will be surprised to few hundred thousands of cells written to disk in subsecond or a 20 million cells document written without the infamous out of memory exception.

One principle is immutability and transiency of elements. Nothing is hanging in caches upon operation. There are no static fields in library classes.

Another principle is guaranteed enumeration order of the IEnumerable instances passed to the framework methods. Basically, enumerations happen in document order and in order of appearance of the supplied arguments to the library methods. This allows for streaming approach, for example when you are enumerating rows in a database.