Update dependency ClosedXML to v0.102.0 #87
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.101.0
->0.102.0
Release Notes
ClosedXML/ClosedXML
v0.102.0
Compare Source
Breaking changes
Please read migration guide from 0.101 to 0.102. The key ones changes are:
IXLCell
is now a proxy to a sparse array and a new proxy is created each time it is requested by user code.Object.ReferenceEquals(ws.Cell("A1"), ws.Cell("A1"))
now evaluates tofalse
(used to betrue
)IXLWorksheet AddWorksheet(DataTable dataTable)
andIXLWorksheet AddWorksheet(DataTable dataTable, string sheetName)
now use different name for the created table.Significant changes
Replaced cell storage engine (#1969)
The cells in a workbook used to be stored in a
Dictionary<int, Dictionary<XLCell>>
. That has several significant drawbacks and the storage has been replaced with a sparse arrays of individual slices (basically a sparse array containing a specific part of a cell).Key benefits (in long term):
Other than memory, it's a potential for the future. Replacing a storage engine is not simple and pretty much everything uses
XLCell
adapter.An example of different for 500k rows of value only cells (gist). About 200MB vs 900MB.
Embedded fonts (#2106)
Default graphic engine of ClosedXML now contains an embedded font. That should be a quality of life improvement for users on Linux and other non-Windows environment who encountered
The embedded font is an absolute bare bones Carlito font (though with a different name to avoid collision with the real one).
See doc for workflow of font selection: https://closedxml.readthedocs.io/en/latest/features/graphic-engine.html#fallback-and-embedded-font
Array formulas
A basic support for array formulas has been added. You can create array formula through
IXLRangeBase
object.csharp ws.Range("B2:D3").FormulaArrayA1 = "B1:D1*POWER(1+A2:A3, 2)";
For more info, see doc: https://closedxml.readthedocs.io/en/latest/features/formulas.html#array-formulas
Refactored pivot source (#1238)
The ancient PR from 2019 has been finally fixed and merged. It doesn't really add very useful features (multiple pivot tables don't have to have individual data store files in a xlsx file), but it is a big step to represent pivot cache data in a workbook. That is pretty much required to do anything useful with pivot tables.
The biggest visible improvement is that there is at least some very basic documentation about pivot tables https://closedxml.readthedocs.io/en/latest/features/pivot-tables.html
Bugfix: Normal style is not required in a workbook (#2102)
Some other OOXML producers (e.g. NPOI) don't add Normal style into a stylesheet and in 0.101 a feature had a missing null check leading to
NullReferenceException
.Misc info & next release
Not really something that is useful at this moment, but there has been significant work done on a replacement of a XLParser (https://github.com/ClosedXML/ClosedXML.Parser).
I hope to be done with the Phase 1 of my maintainership - architecture and dependencies. Most of the "OMG, this must be done before anything else" has been done. I hope to finish the rest (split writers of individual files from 5000+LOC file, use better parser and use calculation chain for formula evaluation) in the next one.
What's Changed
Performance improvements
Features
Bugfixes
Documentation
Quality of life
New Contributors
Full Changelog: ClosedXML/ClosedXML@0.101.0...0.102.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.