Changelog History
-
v0.95.3
May 25, 2020 -
v0.95.2
April 26, 2020 -
v0.95.1 Changes
April 23, 2020๐ Bugs
#1399
.CellsUsed()
should return only cells with content. -
v0.95.0 Changes
April 15, 2020๐ฅ Breaking changes
- Range strings, e.g.
A1:B2
are now always treated as absolute, i.e. relative toA1
instead of relative to the top left cell of a given range. - ๐จ
IXLSheetProtection
has been totally refactored and now uses a flag based enum to control the elements that are allowed or locked. - โ Removed
IXLSheetProtection.IsProtected
setter XLClearOptions
andXLCellUsedOptions
's flags are now alignedIXLDataValidation.Ranges
made readonly- ๐ To add or remove ranges from the data validation rule the user must use dedicated methods (
AddRange
,AddRanges
,ClearRanges
,RemoveRange
) - A single data validation rule cannot apply to ranges from different worksheets (it was a bug that this was possible)
๐ Pull requests merged since 0.95.0-beta2
๐ Bug fixes
๐ #1063 Copy comment style correctly when shifting ranges
#1108 Correctly save empty cell with quote prefix (do not treat as empty)
#1125 Change cached value type when data type changes
#1132 elements with missing r attribute: XLAddress constructor had parameters swapped
#1133 Enumerate ranges in a deterministic order
๐ #1134 Correctly propagate worksheet style to cells from a worksheet
๐ #1135 Correctly load column-wide styles
#1137 Fix changing inner borders of the range
#1150 Correctly clear inline string when required
#1153 Correctly throw DivisionByZeroException when denominator is zero.
#1155 Ignore _X (capital X) as XML escaping char
#1161 Avoid creation of new item in Internals.RowsCollection when adding comment
๐ #1168 Fix initialization of default styles for XLCells, XLRows, XLColumns and XLRanges
#1172 Clear all RelId's if workbook is loaded from template.
๐ #1178 Fixes in GetHashCode functions (#1073)
#1196 Fix error by two pivot with one source #1195
#1223 Fix pivot subtotals loading
๐ #1234 Merged ranges cell values should not be set, except for top left cell of merged range
#1245 Fix the issue with conditional formats created in non-US culture (#1187)
#1247 Fix issues related to cells inserting (#1236)
#1266 Fix CONCATENATE for cell references
#1282 Treat missing numberFormatId as General numberformat
๐ #1289 Remove unused code and fix ATAN2 tests
#1292 Redefine rules for sheet name escaping (#1287)
๐ป #1307 Fix null exception when saving a file
๐ป #1316 Fix exception when loading rows with no row index populated (#1314)
#1323 #651: fix loading with deleted worksheets.
#1351 Fix null DateTime in XLCell.InsertDataInternal with IEnumerable
#1356 Fix a regular expression used for extracting A1 references
๐ #1359 Fixed the Expression double conversion operator to handle string values
#1362 Set longText attribute for string items in pivot table
#1369 Fix issues with loading comments (#1244)
#1384 When saving, mark the first selected tab as active if no active tabs exist (#1383)
#1386 Set the first sheet active and visible on loading if no active tab is specified in file (#1383)Enhancments
#1015 Implement TEXTJOIN function (#1010)
๐จ #1038 IXLSheetProtection refactoring
#1054 Implement workbook FileSharing and a few of the properties
#1058 Don't recalculate formula cached values after load
๐จ #1077 Refactor digit and letter parsing to allow Unicode characters
๐ #1109 Don't automatically adjust columns width to contents when inserting datatable. Some users want to opt out because of PlatformNotSupportedException
0๏ธโฃ #1122 Add helper methods to add worksheet with default sheet name
#1129 Alternative implementation of pivot table formats
โจ #1130 Enhance TRUNC function for additional parameter
#1136 Implement NUMBERVALUE function
๐ #1151 Performance improvement to delete entire columns
๐จ #1158 Check that print titles are valid row ranges or column ranges
0๏ธโฃ #1166 Ignore default Excel function namespace and implement CONCAT function
#1169 Avoid creating new XLCell instances during range shifting
๐ #1170 Remove IXLSheetProtection.IsProtected public setter
#1174 Correctly dispose temporary memorystream
#1175 Sparklines implementation
๐ #1183 Improve Merge operation performance
#1194 Disallow table name that is also a valid address (#1192)
๐ #1205 Improve performance of worksheet copying (#1188)
#1208 optional range consolidation via save options
#1219 Implement MATCH and INDEX functions
๐ #1224 Improve performance of loading workbooks having many merged ranges (#1220)
๐จ #1227 Refactor comments
#1232 Set versioning number to allow enhanced pivot table features
๐ #1237 Improve HLOOKUP and VLOOKUP performance
#1240 Prevent copying of deleted worksheets.
๐ #1253 Replace licenseUrl (deprecated) with license tag
#1278 Clear CellsCollection on WorksheetInternals disposal (#1276)
#1284 Improvements for workbook saving (#1280)
๐ #1293 Remove the unnecessary check for VML elements not existing (#1285)
#1326 PopulateAutoFilter range check (#1325)
๐ #1353 Implement % operator and correctly parse expressions with multiple unary operators (--, ++)
#1357 Replace String.Compare with TryGetValue
โ #1364 Fix issues occurred when running tests on .Net Core 3.0
#1368 Clear inlined rich text data on saving (#1361)
๐ #1376 CEILING and FLOOR fixes
#1379 Explicitly set document type on saving (#1375)
#1381 Exclude dependent SUBTOTAL formulas in SUBTOTAL evaluation
๐ #1388 Remove the dependency on FastMember. Improve performance of InsertData (#797)
#1391 Replace ContainsKey with TryGetValue - Range strings, e.g.
-
v0.95.0-beta2
August 11, 2019 -
v0.95.0-beta1 Changes
April 04, 2019๐ฅ Breaking changes
- Range strings, e.g.
A1:B2
are now always treated as absolute, i.e. relative toA1
instead of relative to the top left cell of a given range. - ๐จ
IXLSheetProtection
has been totally refactored and now uses a flag based enum to control the elements that are allowed or locked. - โ Removed
IXLSheetProtection.IsProtected
setter XLClearOptions
andXLCellUsedOptions
's flags are now aligned
โจ Enhancements
- #1015 Text join func enhancement (Thanks @James-Whitfield)
- ๐จ #1038
IXLSheetProtection
refactoring - #1054 Implement workbook FileSharing and a few of the properties
- #1058 Dont recalculate formula cached values after load
- ๐จ #1077 Refactor digit and letter parsing to allow Unicode characters
- ๐ #1109 Don't automatically adjust columns width to contents when inserting datatable. Some users want to opt out because of
PlatformNotSupportedException
- #1129 Implementation pivot table formats (Thanks @b0bi79)
- โจ #1130 Enhance
TRUNC
function for additional parameter - #1136 Implement
NUMBERVALUE
function - ๐ #1151 Performance improvement to delete entire columns
- ๐จ #1158 Check that print titles are valid row ranges or column ranges
- ๐ #1170 Remove
IXLSheetProtection.IsProtected
public setter
๐ Bug fixes
- ๐ #1063 Copy comment style correctly when shifting ranges
- #1108 Correctly save empty cell with quote prefix (do not treat as empty)
- #1132
<c>
elements with missingr
attribute:XLAddress
constructor had parameters swapped - #1133 Enumerate ranges in a deterministic order
- ๐ #1134 Correctly propagate worksheet style to cells from a worksheet
- ๐ #1135 Correctly load column-wide styles
- #1137 Fix changing inner borders of the range
- #1150 Correctly clear inline string when required
- #1153 Correctly throw
DivisionByZeroException
when denominator is zero. - #1155 Ignore
_X
(capital X) as XML escaping char - #1161 Avoid creation of new item in
Internals.RowsCollection
when adding comment - ๐
#1168 Fix initialization of default styles for
XLCells
,XLRows
,XLColumns
andXLRanges
Thanks to @Pankraty for many PRs, as usual.
Binaries are available at:
๐ClosedXML
: https://ci.appveyor.com/project/ClosedXML/closedxml/builds/23591647/job/dyitdjnq6ta3nnpb/artifacts
๐ClosedXML.Signed
: https://ci.appveyor.com/project/ClosedXML/closedxml/builds/23591647/job/hk6hbr6kt807lvxf/artifacts - Range strings, e.g.
-
v0.94.2 Changes
December 18, 2018 -
v0.94.1
December 14, 2018 -
v0.94.0 Changes
December 12, 2018๐ฅ Breaking changes
- ๐ฆ This unsigned
ClosedXML
package now depends onFastMember
instead ofFastMember.Signed
. The signedClosedXML.Signed
still depends onFastMember.Signed
. - ๐
IDisposable
interface removed fromIXLWorksheet
. See #1049 - ๐
IXLPictures
interface has changed to accept parameters of typeIXLCell
instead ofIXLAddress
. See #930 - ๐
IXLBaseAutoFilter
removed and replaced with the existingIXLAutoFilter
. See #909 - ๐
IXLRange.ToString()
andIXLRangeAddress.ToString()
now return context aware range strings. See #1021
โจ Enhancements
- #856 Clear pivot table rendered range upon loading to avoid conflict on rendered cells when opening the file.
- #877 Add helper property
VisibleRows
for autofilters - #884 Allow pivot tables to have no theme
- #904 Implement the full range of Item subclasses for pivot tables
- #905 Don't choke on pivot table saving when formulas fail
- #908 New methods to append and replace table data
- #909 New method to reapply autofilter
- #926 Disallow table with null
.DataRange
when saving - #930 Store picture markers against a range to allow shifting when inserting and deleting
- #932 Optionally propagate extra table columns when changing data
- #945 Allow
Guid
values to be inserted when dumping data - #962 Add ability to set cell value to an enum value
- #978 Add table helper methods:
IXLTables.TryGetTable()
- #996 Allow table field names consisting of only whitespace
- #999 Allow names to start with backslash
- ๐จ #1005 Ignore print areas that point to external workbooks
- โ
#1019 Improve
XLCell.TryGetValue
and implement additional tests - #1021 Return simpler range address values
- #1025 Lazy initialize graphics
- ๐ #1033 Optimize the performance of searching range intersections on small collections
- #1035 Improve implicit string casting
- #1036 Don't validate named ranges when loading file
- #1044 Add check that data validation value length does not exceed 255 chars
- #1064 Make
TryGetValue_decimal_Good2test
environment-independent
๐ Bug fixes
- #876 Correctly unprotect worksheet without password
- ๐ #887 Correctly determine used range when there are merged ranges on a worksheet
- #903 Clear all cell contents (formats too) in pivot table range upon loading.
- #906 Maintain pivot table page field order
- #931 Delete table rows correctly
- #947 Fix pivot table integrity when saving multiple times
- #956 Do not quote worksheet name with whitespace when saving pivot table worksheet source
- #969 Fix ranges consolidation
- 0๏ธโฃ #985 Set
XLPivotField.ShowBlankItems
by default to false and fix treatment of defaults from loading file - #988 FIX for
XLConditionalFormat
equality comparer fails forColorScale
- 0๏ธโฃ #998 Copies of tables should have
RelId
default tonull
- #1023 Sort ranges to shift before enumerating through them to avoid new target address conflicting with existing range
- #1028 Copy row/column visibility setting
- ๐จ #1029
CellsUsed
refactoring and fix - ๐ #1031 Fix for merging cells
- #1032 Change the way invalid ranges are saved
- #1041 Autofilter with multiple columns with filters
- #1047 String comparisons should be case-insensitive
- #1048 Shift data validation ranges when inserting / delete ranges
- ๐ฆ This unsigned