github ClosedXML/ClosedXML 0.95.0

latest releases: 0.102.2, 0.104.0-preview2, 0.104.0-preview1...
4 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
#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
#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

Don't miss a new ClosedXML release

NewReleases is sending notifications on new releases.