ClosedXML v0.95.0 Release Notes
Release Date: 2020-04-15 // about 4 years ago-
๐ฅ 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.