ClosedXML v0.95.0 Release Notes

Release Date: 2020-04-15 // over 2 years ago
  • ๐Ÿ’ฅ Breaking changes

    • Range strings, e.g. A1:B2 are now always treated as absolute, i.e. relative to A1 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 and XLCellUsedOptions 's flags are now aligned
    • IXLDataValidation.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