-
Notifications
You must be signed in to change notification settings - Fork 54
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
Completely rewrite excel sheet parsing #88
Merged
Merged
Commits on Aug 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for faa1585 - Browse repository at this point
Copy the full SHA faa1585View commit details -
Configuration menu - View commit details
-
Copy full SHA for de6a8c3 - Browse repository at this point
Copy the full SHA de6a8c3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 66a4d96 - Browse repository at this point
Copy the full SHA 66a4d96View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64efaf8 - Browse repository at this point
Copy the full SHA 64efaf8View commit details
Commits on Aug 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 27bb2e2 - Browse repository at this point
Copy the full SHA 27bb2e2View commit details
Commits on Aug 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0fe084e - Browse repository at this point
Copy the full SHA 0fe084eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96dceeb - Browse repository at this point
Copy the full SHA 96dceebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 604b7c9 - Browse repository at this point
Copy the full SHA 604b7c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for f688b05 - Browse repository at this point
Copy the full SHA f688b05View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6fb7725 - Browse repository at this point
Copy the full SHA 6fb7725View commit details -
Configuration menu - View commit details
-
Copy full SHA for db7e8b2 - Browse repository at this point
Copy the full SHA db7e8b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1acb0d6 - Browse repository at this point
Copy the full SHA 1acb0d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 339aea8 - Browse repository at this point
Copy the full SHA 339aea8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 271cfde - Browse repository at this point
Copy the full SHA 271cfdeView commit details -
Configuration menu - View commit details
-
Copy full SHA for a092322 - Browse repository at this point
Copy the full SHA a092322View commit details -
Configuration menu - View commit details
-
Copy full SHA for c9b9bb1 - Browse repository at this point
Copy the full SHA c9b9bb1View commit details
Commits on Aug 15, 2024
-
Use a plain delegate instead and resolve by default
Configuration menu - View commit details
-
Copy full SHA for fc7fb2e - Browse repository at this point
Copy the full SHA fc7fb2eView commit details
Commits on Aug 16, 2024
-
* `IExcelRow.RowId` and `IExcelRow.SubrowId` exist to implement `ICollection<T>.Contains`. * `System.Collections.Generic.EnumerableHelpers.ToArray` and alike in LINQ has an optimization for `ICollection<T>`. As it requires `Contains` to be implemented, exposing `RowId` and `SubrowId` in a generic way will make it possible to implement that in O(1). * `ExcelSheet` constructor now preallocates lookup lookup tables. * `.exh` file comes with information on how many rows are there, so we know the exact number of items that needs to be allocated. * Using an array directly bypassing list wrappers may provide an additional speed boost. * In case `.exh` file contains a wrong information on number of rows, which is an unlikely case, `Array.Resize` is used to reallocate the array. * `ExcelSheet.UnsafeCreateRow/Subrow/At` has been added. * These functions assume that boundary checks are done by callers. * As enumerators always work inside the boundary, especially when the collection is immutable, `IEnumerator{T}.Current` can skip boundary checks. * `DefaultExcelSheet<T>` and `SubrowsExcelSheet<T>` has been added. * As sheets are usually not meaningful without knowing what is in it in the first place, it would be better to specialize for each variants. * This effectively hides subrow operations from sheets of default variants. * This removes `HasSubrows` check from getter functions. * Added `SubrowsExcelSheet.Try/GetRow/OrDefault` variants that returns `SubrowCollection<T>` instead. * This makes it convenient to iterate over subrows under one row ID. * This makes it faster to access multiple subrows under one row ID, as lookup operation is done on obtaining the collection. Once the collection is constructed, accessing subrows is an O(1) operation. * `ExcelModule.GetSheet` uses static lambda in place of `SheetCache.GetOrAdd`. * This will avoid heap allocation if a corresponding sheet is already loaded. * Named value tuples in `ExcelSheet` are replaced with `record struct`. * This reduces the size of each lookup element from 16 bytes to 12 bytes.
Configuration menu - View commit details
-
Copy full SHA for 2f075cc - Browse repository at this point
Copy the full SHA 2f075ccView commit details -
Most of sheets do not have large gaps across items. That fact can be used to make a lookup array instead of lookup dictionary, which will even further reduce the time spent translating row ID to row index.
Configuration menu - View commit details
-
Copy full SHA for 79c90a5 - Browse repository at this point
Copy the full SHA 79c90a5View commit details
Commits on Aug 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 754bf9a - Browse repository at this point
Copy the full SHA 754bf9aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 105fd19 - Browse repository at this point
Copy the full SHA 105fd19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0956b1f - Browse repository at this point
Copy the full SHA 0956b1fView commit details -
* `MethodInfo.Invoke` throws `TargetInvocationException` if the method throws an exception; changed to handle that. * Added comments for some functions.
Configuration menu - View commit details
-
Copy full SHA for 5af0b02 - Browse repository at this point
Copy the full SHA 5af0b02View commit details -
Set
IEnumerator<T>.Current
onMoveNext
Making `IEnumerator<T>.Current` evaluate on demand can let an invalid value get passed to UnsafeCreate functions. Creating them on `MoveNext` will guarantee that UnsafeCreate functions are called only from the context where the preconditions are met.
Configuration menu - View commit details
-
Copy full SHA for e1c7d78 - Browse repository at this point
Copy the full SHA e1c7d78View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ad083e - Browse repository at this point
Copy the full SHA 2ad083eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a3cee2 - Browse repository at this point
Copy the full SHA 2a3cee2View commit details -
Merge pull request #2 from Soreepeong/wrl2
Reformat code, documentation/enumerator correctness fixes
Configuration menu - View commit details
-
Copy full SHA for 924b733 - Browse repository at this point
Copy the full SHA 924b733View commit details -
Configuration menu - View commit details
-
Copy full SHA for a82a616 - Browse repository at this point
Copy the full SHA a82a616View commit details -
Configuration menu - View commit details
-
Copy full SHA for 54b7fcd - Browse repository at this point
Copy the full SHA 54b7fcdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 45fad71 - Browse repository at this point
Copy the full SHA 45fad71View commit details -
Configuration menu - View commit details
-
Copy full SHA for 287bc57 - Browse repository at this point
Copy the full SHA 287bc57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 349d770 - Browse repository at this point
Copy the full SHA 349d770View commit details -
Configuration menu - View commit details
-
Copy full SHA for 24c7964 - Browse repository at this point
Copy the full SHA 24c7964View commit details
Commits on Aug 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a86c80e - Browse repository at this point
Copy the full SHA a86c80eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71cf233 - Browse repository at this point
Copy the full SHA 71cf233View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b3082f - Browse repository at this point
Copy the full SHA 0b3082fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 73a0c6f - Browse repository at this point
Copy the full SHA 73a0c6fView commit details -
Merge pull request #4 from Soreepeong/wrl2
Use constructors directly on Subrow/ExcelSheet, specialize exception
Configuration menu - View commit details
-
Copy full SHA for 4f57f67 - Browse repository at this point
Copy the full SHA 4f57f67View commit details -
Configuration menu - View commit details
-
Copy full SHA for b07aa32 - Browse repository at this point
Copy the full SHA b07aa32View commit details -
Configuration menu - View commit details
-
Copy full SHA for 030bfd3 - Browse repository at this point
Copy the full SHA 030bfd3View commit details -
Configuration menu - View commit details
-
Copy full SHA for e3a39d8 - Browse repository at this point
Copy the full SHA e3a39d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for b70f89e - Browse repository at this point
Copy the full SHA b70f89eView commit details
Commits on Aug 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0a13740 - Browse repository at this point
Copy the full SHA 0a13740View commit details
Commits on Aug 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 130f036 - Browse repository at this point
Copy the full SHA 130f036View commit details -
Configuration menu - View commit details
-
Copy full SHA for 78a00f0 - Browse repository at this point
Copy the full SHA 78a00f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ddce871 - Browse repository at this point
Copy the full SHA ddce871View commit details
Commits on Aug 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6a28cd2 - Browse repository at this point
Copy the full SHA 6a28cd2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 46dbd7b - Browse repository at this point
Copy the full SHA 46dbd7bView commit details -
Configuration menu - View commit details
-
Copy full SHA for a562e31 - Browse repository at this point
Copy the full SHA a562e31View commit details
Commits on Aug 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4c00073 - Browse repository at this point
Copy the full SHA 4c00073View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1de6d40 - Browse repository at this point
Copy the full SHA 1de6d40View commit details -
Configuration menu - View commit details
-
Copy full SHA for 651599d - Browse repository at this point
Copy the full SHA 651599dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b55c21 - Browse repository at this point
Copy the full SHA 6b55c21View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c844d9 - Browse repository at this point
Copy the full SHA 2c844d9View commit details
Commits on Sep 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9b0aab3 - Browse repository at this point
Copy the full SHA 9b0aab3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 843f976 - Browse repository at this point
Copy the full SHA 843f976View commit details
Commits on Sep 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9088fe3 - Browse repository at this point
Copy the full SHA 9088fe3View commit details
Commits on Sep 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2ce372a - Browse repository at this point
Copy the full SHA 2ce372aView commit details
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.