-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependency ClosedXML to 0.104.2 #620
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/closedxml-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 19, 2024 15:19
72c0ede
to
a49b634
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 21, 2024 09:31
a49b634
to
eab1f5c
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 21, 2024 10:19
eab1f5c
to
aa098a7
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 21, 2024 11:10
aa098a7
to
c9fdf35
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 21, 2024 12:03
c9fdf35
to
31e5cf2
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 22, 2024 01:54
31e5cf2
to
3d7e9a8
Compare
renovate
bot
changed the title
Update dependency ClosedXML to 0.104.1
Update dependency ClosedXML to 0.104.2
Nov 22, 2024
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 27, 2024 17:43
3d7e9a8
to
732e22b
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 28, 2024 10:01
732e22b
to
1c070ee
Compare
renovate
bot
force-pushed
the
renovate/closedxml-0.x
branch
from
November 28, 2024 16:02
1c070ee
to
392046e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.102.3
->0.104.2
Release Notes
ClosedXML/ClosedXML (ClosedXML)
v0.104.2
Compare Source
What's Changed
Full Changelog: ClosedXML/ClosedXML@0.104.1...0.104.2
v0.104.1
Compare Source
Release notes from 0.102.1 to the 0.104.1.
Summary of breaking changes is available at docs.closedxml.io:
OpenXML SDK
OpenXML SDK has released version 3. The 0.104.0 uses it as a dependency.
XLParser replaced with ClosedParser
The XLParser has been replaced with ClosedParser. The key benefits are
There is also a visualizer to display AST in a browser at https://parser.closedxml.io
Formula Calculation
In previous version, formulas used to be calculated recursively. Each formula checked it's supporting cells for other formulas and if there were some, they were recursively evaluated. There was some logic to decrease number of evaluations. That works for a very simple cases, but isn't very good for various non-happy paths (i.e. cells weren't calculated when they should be).
This version has replaced it with a standard
For more info, see docs, the Microsoft has a page about principles Excel Recalculation
and there is one with API at docs.closedxml.io.
Structured references
New parser also allows a basic evaluation of structured references. Format of structured reference must use official grammar, not Excel friendly names (e.g.
Pastry[@​Name]
is user-friendly name forPastry[[#This Row],[Name]]
). It's now possible toRenaming sheet updates formulas
When a sheet is renamed, a formula referencing the sheet is also updated. This is a part of long term effort to fix effects of structural changes of a workbook. It will be a long road (e.g. sheet still delete doesn't swicth to
#REF!
),** but is one of basic features that should be working acorss the board.Workbook structure
Internal structure has been cleaned up and optimized.
The dirty tracking has been moved out of cells to formulas and thus memory taken up by a single cell value is now only 16 bytes instead of 24 (?) bytes in 0.102. Of course there are some other structures around that take up memory as well, but the single cell value is now 16 bytes (I hoped for 8, but not feasible with
double
,DateTime
andTimeSpan
as possible cell values - all take up 8 bytes... not enough bits).The same string in different instances is now not duplicated, but only one instance is used. As seen on following test, it can lead to significant decrease in memory consumption. 250k rows with 10 text rows (same string, different instance): 117 MiB om 0.103 vs 325 MiB in 0.102.1.
InsertData
performanceInsert 250k rows of 10 columns of text and 5 columns of numbers (gist).
Loading of cells is now done through streaming
Basically workbooks with a large amount of cells should see ~15%-20% speedup (as long as there are mainly values, not styles or OLAP metadata....).
Reading the 250k from previous chapter:
Of course, this includes all stuff from 0.103.0-beta. Version 0.103 never got a non-beta release.
Pivot tables
The internal structure of pivot tables, along with most other features, has been completely overhauled. This update should significantly reduce crashes when loading and saving workbooks containing pivot tables.
The main issue with the previous internal structure was that it didn't align with the structure used by OOXML. This was problematic because we need to support all valid files. As a result, we have to handle a wide range of inputs and correctly convert them to our internal structure, which is rather hard. A more clear 1:1 mapping with OOXML is much simpler and more reliable.
AutoFilter
The Autofilter feature has been revamped, which includes some API changes. Its behavior is now more closely aligned with how Excel operates. The XML documentation provides detailed explanations, and there is a dedicated documentation page. Several bugs have also been fixed.
For more details, refer to the Autofilter section of the migration guide.
Source link
Although ClosedXML still doesn't have source package (Fody static weaving causes pdb mismatch and nuget will refuse symbol package), there is a source link info in the package.
SourceLink basically takes a repository and a commit from the package and retrieves source from directly from forge (in this case GitHub).
CommonCrawl dataset
When workbook is a valid one, ClosedXML shouldn't throw on load. That is a rather high priority (more than saving or manipulation). Unfortunately, that is hard to find such areas that cause most problems.
One of activities that was going in a background is trying to use excel files around the internet (found by CommonCrawl) to evaluate how bad it is. There aren't results yet, but it is something that is going on.
What's Changed
Technical debt
Performance improvements
Features
Bugfixes
Documentation
Breaking changes
AutoFilter
Formulas
Functions
Dependencies
Fixes
Pivot tables
New Contributors
Full Changelog: ClosedXML/ClosedXML@0.104.0-preview2...0.104.0-rc1
v0.104.0
Compare Source
Configuration
📅 Schedule: Branch creation - "before 4am on Monday" in timezone Europe/London, Automerge - "after 10am every weekday,before 4pm every weekday" in timezone Europe/London.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.