Releases: mini-software/MiniExcel
2.0.0 Preview 3
After a bit of a hiatus since the last preview version, this one brings many fixes and new features. There will be one more preview release after this one, but a full fledged v2 release will most likely follow shortly after.
New Features - Summary
- The OpenXml logic has been decoupled from all the abstractions, making it possible for this version to be released under 4 different packages:
MiniExcel.Corefor the abtractions,MiniExcel.OpenXmlfor the OpenXml functionalities,MiniExcel.Csvfor the csv functionalities, and finally the full packageMiniExcel. - Public fields can now get mapped for importing and exporting, not by default but when marked with
MiniExcelColumnAttributeor any other MiniExcel attribute. - It is now possible to hide columns when exporting a worksheet by marking the respective property with
MiniExcelHiddenAttributeorMiniExcelColumnAttribute.Hidden. OpenXmlImporterhas been enhanced with new methodRetrieveCommentsAsync, allowing for retrieval of both threaded comments and legacy notes from a worksheet.OpenXmlExporterhas been enhanced with new methodAlterWorksheetAsync, allowing for editing an existing worksheet's name, index and visibility state.- The implementation of
MiniExcelDataReaderhas been extended, turning it into a fully functionalIDataReader. - The
RightToLeftparameter was added toOpenXmlConfigurationallowing for a worksheet to be displayed in Excel in a RTL manner. - It is now possible to choose horizontal and vertical cell alignment for the whole column rather than only for the header through the
OpenXmlConfiguration.StyleOptions.
What's Changed - Details
- Fix #905: Release the internally created IAsyncEnumerator by @izanhzh in #906
- New github report templates by @michelebastione in #908
- docs: add horizontal fill workaround by @meiranzheng in #912
- Fix template export generating corrupted Excel files by @A-nony-mous in #917
- Moved OpenXml specific logic to new MiniExcel.OpenXml project by @michelebastione in #918
- Ignoring empty rows in csv files by @michelebastione in #923
- Added async implementation for GenerateSheetXmlImplByCreateMode by @michelebastione in #925
- Fixes Issue 915 by @michelebastione in #924
- Added right-to-left layout exporting capability by @michelebastione in #927
- Changed logic behind identification of special template values by @michelebastione in #928
- MiniExcelDataReader refactoring by @michelebastione in #929
- Refactored column width writing logic by @michelebastione in #930
- Adds mapping fields capability by @michelebastione in #931
- Adds hidden columns functionality by @michelebastione in #932
- Fixed minor edge case bug in enum mapping by @michelebastione in #933
- Added explicit flag for overwriting result file when applying a template by @michelebastione in #934
- Refactoring of the templating system by @michelebastione in #936
- Cell alignment support by @2399087410 in #938
- Revised and patched the workflow for exporting data to OpenXml asynchronously by @michelebastione in #939
- Optimized write adapters and improved code clarity by @michelebastione in #940
- Enhanced OpenXmlImporter with new functionality for retrieving comments and notes by @michelebastione in #941
- Changing templating system from XmlDocument based to XDocument based by @michelebastione in #946
- Added API for editing a worksheet's properties by @michelebastione in #949
- Preparations for release of preview version 3 by @michelebastione in #950
New Contributors
- @meiranzheng made their first contribution in #912
- @A-nony-mous made their first contribution in #917
- @2399087410 made their first contribution in #938
Full Changelog: 2.0.0-preview.2...2.0.0-preview.3
1.43.1
What's Changed
- Fixed headers being printed when using
SaveAsAsyncdespiteExcelIgnoreproperty set to true onDynamicExcelColumnby @michelebastione in #937 - Backports background color and text alignment style options from v2.x by @michelebastione in #945
- Preparations for v1.43.1 release by @michelebastione in #948
Full Changelog: 1.43.0...1.43.1
1.43.0
What's Changed
This release brings the following features and fixes:
New Features
- Adds
RightToLeftparameter inOpenXmlConfigurationto make worksheets being displayed in a right-to-left layout when opened in Excel by @michelebastione in #935 (mirrors #927) - Adds the
ExcelHiddenAttributethat, when used to decorate a property, hides the mapped column in Excel by @michelebastione in #935 (mirrors #932)
Bugfixes
- Fixes
IAsyncEnumeratornot being properly disposed inAsyncEnumerableWriteAdapter, leading to database connections not being released by @izanhzh and @michelebastione in #907 (mirrors #906) - Fixed an error that resulted in corrupted Excel files when filling a template by @A-nony-mous and @michelebastione in #926 (mirrors #917)
- Fixes empty or whitespace rows breaking the parsing of csv files by @michelebastione in #926 (mirrors #923)
- Fixes numeric value not being passed in a culturally invariant format to template cells when being fetched from a
Dictionaryor aDataTableby @michelebastione in #926 (mirrors #924) - Fixes cells in Excel templates containing strings such as
@group(like in some emails) to be mistakenly identified as template parameters by @michelebastione in #935 (mirrors #928) - Refactored column width writing logic to default to Excel's 8.43 characters (64px) and taking padding into account by @michelebastione in #935 (mirrors #930)
Full Changelog: 1.42.0...1.43.0
2.0.0 Preview 2
New Pre-Release Version
Big milestone reached with the implementation of a Fluent Mapper. It allows for a powerful new way to use MiniExcel, giving you finer grained control over the way you can map Excel sheets to your objects and collections! Read more about it in the docs.
Thanks to everyone who tried out our previous pre-release and sent feedback! We're getting close to a full v2 release, stay tuned for updates!
What's Changed
- Added support for new Fluent Mapping configuration by @CoreyKaylor in #850
- Added
DateTimetoDateOnlyconversion by @RiRiSharp in #870 - Minor doc changes by @michelebastione in #872
- PR #870 oversight fix by @michelebastione in #874
- Fixed exception not being thrown when too long a sheet name was passed as dictionary key by @michelebastione in #878
- Added custom exception for indexers being treated as properties during serialization by @michelebastione in #884
- Exposed
IProgressfor Exports by @mukunku in #883 - Fixed two edge cases with the mapping of
doubletypes by @michelebastione in #886 - Fixed #888 by ignoring empty rows on reading by @paulroho and @michelebastione in #893
- Changed shared strings cache default path and added option to customize it by @michelebastione in #897
- Updated projects, tests and samples as part of a refactoring following the release of .NET 10 by @michelebastione in #900
New Contributors
- @RiRiSharp made their first contribution in #870
- @mukunku made their first contribution in #883
- @CoreyKaylor made their first contribution in #850
Full Changelog: 2.0.0-preview.1...2.0.0-preview.2
1.42.0
What's Changed
- Added custom exception for indexers being treated as properties during serialization by @michelebastione in #885
- Fixed two edge cases with the mapping of double types by @michelebastione in #887
- Fix #888: Ignore empty rows on read by @paulroho in #890
- Changed the default location where the shared strings cache is stored and added option to customize it by @michelebastione in #898
- Added
.net10.0as a target framework to all projects and other related changes by @michelebastione in #899
New Contributors
Full Changelog: 1.41.4...1.42
1.41.4
1.41.4
- [Bug] Fixed issue where formulas were not being replaced in templates (#876) (via @michelebastione)
- [Bug] Mirrored fix for issue #869 from master branch to maintenance branch (#873) (via @michelebastione)
- [Bug] Fixed formulas not being replaced in templates (#869) (via @ethanlin6)
- [New] Made
SaveAsByTemplateoverload withStreamtemplate parameter public and callable via API (#838) (via @michelebastione)
2.0.0 Preview 1
2.0.0-preview.1
This is a fairly big step for MiniExcel: we've added full support for asynchronous queries through IAsyncEnumerable and restructured the project adding a modular API, planning to expand it into separate packages. There's more to come on the way, so stay tuned! Meanwhile, please try out the current preview and leave some feedback! And check out the new Docs and the Upgrade Notes for details and breaking changes.
- Fixed bug that made the DynamicExcelColumn property
Ignorenot work when generating using an IDataReader as source by @michelebastione in #786 - Added option to quote csv values containing whitespaces, fixed benchmark workflow file, other minor changes by @michelebastione in #790
- [bugfix] enable async style builder setting cell wrap text by @kasimLZ in #795
- WIP: add NPOI benchmark code by @tonyqus in #796
- Adding methods from NPOI to the benchmarks by @tonyqus in #798
- refactor(ExcelReader): restructure the code by @izanhzh in #797
- Fixed phoneticPr for correct XML order; ensure conditionalFormat is not duplicated by @ethanlin6 in #802
- Replace Task.Run wrappers with real asynchronous methods by @virzak in #799
- Minor corrections to #799 by @virzak in #808
- refactor: auto-generate sync methods by @izanhzh in #807
- Restore performance by returning bool instead of object in TryGetMergeCellsAsync by @virzak in #813
- fix: multiple empty rows in query result due to empty first row by @izanhzh in #811
- 1 41 3 fix bugs by @shps951023 in #818
- Revert "1 41 3 fix bugs" by @michelebastione in #820
- Big refactoring before first beta release by @michelebastione in #821
- Remove .NET 9 and add .NET 10; remove .NET Framework 4.6.2 which is still being covered by .NET standard 2.0 by @virzak in #825
- Replace image chart with mermaid by @virzak in #829
- Separating project into different assemblies by @michelebastione in #828
- Fixes formulas not being replaced in templates by @michelebastione in #846
- Extending the header style in OpenXmlStyleOptions by @dazhu6666 in #841
- New readme for v2.0 by @michelebastione in #855
- Update language links and improve README formatting by @shps951023 in #865
- Update project structure and restore core functionality by @shps951023 in #866
New Contributors
- @kasimLZ made their first contribution in #795
- @tonyqus made their first contribution in #796
- @virzak made their first contribution in #799
- @dazhu6666 made their first contribution in #841
Full Changelog: 1.41.2...2.0.0-preview.1
1.41.3
1.41.3
- [New] Adding QuoteWhitespaces option to CsvConfiguration for adding double quotes to string containing whitespaces #790 (via @michelebastione )
- [Bug] Fixed bug that made the DynamicExcelColumn property "Ignore" not work when generating using an IDataReader as source #584 (via @michelebastione )
- [Bug] v1.41.2 AddPicture not working #814 (via @shps951023)
- [Bug] v1.41.1 AddPicture image max column and row are 2 cells #815 (via @shps951023)
- [Bug] AddPicture get error same export file and second time. #816 (via @shps951023)
1.41.2
1.41.2
- [New] Fixes enum behaviour and adds support for DescriptionAttribute when saving by template (via @michelebastione )
- [Bug] SaveAsByTemplate - Excel Dimension Xml is null #459 (via @michelebastione )
- [Other] Benchmarks refactoring and adaptation for making them run on Github Actions (#777) (via @michelebastione )
- [Other] add deepwiki link and badge (via @isdaniel )
1.41.1
1.41.1
- [New] Added sheet dimensions feature (#774) (via @michelebastione)
- [Bug] Fix Saving by template introduces unintended value replication in each row #771
(via @shps951023) - [Bug] SaveAsByTemplate not working in > v1.39.0 for templates with columns past Z #773 (via @shps951023)
- [Bug] Fix Excel style.xml duplicate numFmtId, system error: An item with the same key has already been added. #772 (via @shps951023)