Notes
- Big internal refactoring to reduce memory consumption.
- Pivot tables with tables as data sources are now supported. Previously these pivot tables were ignored. They are now parsed and can be manipulated. Please note that there are still unsupported pivot table features, e.g. calculated fields. These unsupported features might now be triggered for pivot tables with table data sources.
Gratitude
A big thank you to @Pankraty for the work he's done on implementing the style and range repositories.
Breaking changes:
- Use
ClosedXML
if you don't require a signed version. UseClosedXML.Signed
if you require a signed version (strong name). - Workbook calculation will now use cached results. Call
IXLWorkbook.RecalculateAllFormulas
if you get unexpected results. IXLCell.ValueCached
is now obsolete. UseIXLCell.CachedValue
rather.- Default table theme changed to
TableStyleMedium2
(as Excel does) XLAddress
andXLRangeAddress
is now immutable. Usews.Cell(.., ..).Address
andws.Range(..).RangeAddress
to get instances.IDisposable
interface removed from many classes, e.g fromIXLRange
.- Extension methods now internal. The full list of extension methods that were removed, can be found at here . If you used them, please find alternatives, e.g. morelinq for the
.ForEach
method. - Setting a cell value using
.SetValue()
to a date that's lower than the base date will throw anArgumentException
. - Disallow negative row or column count to be inserted
- Conditional formats applied to multiple ranges are not split into multiple
IXLConditionalFormat
instances. Use the newIXLConditionalFormat.Ranges)
(plural) method to retrieve all ranges.IXLConditionalFormat.Range
(singular) will return only the first range.