Skip to content

Releases: mini-software/MiniExcel

MiniExcel 1.46.1

Choose a tag to compare

@shps951023 shps951023 released this 22 Aug 07:32

Summary

This maintenance release adds standardized citation metadata for research use and Zenodo archival, plus the new MiniExcel command-line interface.

Changes

  • Added CITATION.cff metadata for software citation and DOI ingestion.
  • Updated the v1 package version to 1.46.1.
  • Added MiniExcel.Cli with query and convert commands for Excel and CSV files.
  • Added a framework-dependent .NET tool package and self-contained NativeAOT executables for Windows, Linux, and macOS.

CLI installation

dotnet tool install --global MiniExcel.Cli --version 1.46.1

Native executables can be downloaded from the release assets below and do not require a .NET runtime.

Validation

  • 361 tests passed across the v1 solution.
  • CLI unit tests and CSV-to-XLSX round-trip tests passed.
  • NativeAOT executables were built and smoke-tested on Windows, Linux, and macOS.
  • Release packages were built for net45, net461, netstandard2.0, net8.0, net9.0, and net10.0.

Full Changelog: 1.46.0...v1.x-maintenance

1.46.0

Choose a tag to compare

@shps951023 shps951023 released this 22 Aug 05:00

Summary

This release adds streaming XLSX/XLSM-to-Markdown conversion in two formats:

  • MarkdownFormat.Simple produces compact GitHub-Flavored Markdown tables.
  • MarkdownFormat.LlmFriendly produces chunked Markdown with worksheet, range, row, column-address, and formula context for LLM and RAG workflows.

It also adds a .NET 10 Blazor WebAssembly Browser Lab at https://mini-software.github.io/MiniExcel/ so workbooks can be converted locally in the browser, with a direct switch to the Rust WASM implementation.

Template rendering is also more reliable: formula cells and calcChain.xml are now regenerated correctly so Excel no longer rejects rendered workbooks containing static or $= formulas.

What's Changed

  • Fixed template formula serialization and calcChain regeneration by @martin-vitous and @michelebastione in #990
  • Added streaming XLSX/XLSM-to-Markdown conversion, focused regression coverage, and documentation by @shps951023 in #997
  • Added the .NET Blazor WebAssembly Browser Lab and GitHub Pages deployment by @shps951023
  • Refreshed benchmark reports through the automated benchmark workflow

Downloads

GitHub UI

Download MiniExcel.1.46.0.nupkg or MiniExcel.1.46.0.snupkg from the Assets section below.

GitHub CLI

gh release download 1.46.0 \
  --repo mini-software/MiniExcel \
  --pattern "MiniExcel.1.46.0.*nupkg"

Install the downloaded package from the local directory:

dotnet add package MiniExcel --version 1.46.0 --source .

After publication to nuget.org, install normally with:

dotnet add package MiniExcel --version 1.46.0

Full Changelog: 1.45.0...1.46.0

1.45.0

Choose a tag to compare

@michelebastione michelebastione released this 26 Jun 19:21

Summary

This release adds .NET Framework 4.6.1 as an explicit target framework to the library.
This was done because projects targeting the full framework would install through NuGet the closest matching version to their compilation target, said version being .NET 4.5 instead of the preferred netstandard2.0. This had the most notable effect of IAsyncEnumerables not being supported as exportable data sources.

What's Changed

Full Changelog: 1.44.1...1.45.0

2.0.0 Preview 4

2.0.0 Preview 4 Pre-release
Pre-release

Choose a tag to compare

@michelebastione michelebastione released this 13 Jun 20:49

This release brings bug fixes, new features and quality of life improvements, such as proper number/datetime format serialization, resource based localization for the column attributes, support for querying named tables, dynamic sheet generation for templates and more!
This will most likely be the last pre-release version before the full fledged v2 release, so please do try it out and send feedback if you can, it would be very appreciated!

What's Changed - Details

New Contributors

Full Changelog: 2.0.0-preview.3...2.0.0-preview.4

1.44.1

Choose a tag to compare

@michelebastione michelebastione released this 15 May 20:21

Summary

This release is a hotfix for an oversight that prevented numerical string values to be recognized as text by Excel when explicitly exported with the "@" format.

What's Changed

Full Changelog: 1.44.0...1.44.1

1.44.0

Choose a tag to compare

@michelebastione michelebastione released this 13 May 22:10

Added proper numerical formatting for numbers, dates and times

This release addresses a long standing issue with regards to the MiniExcelFormatAttribute.

Prior to this update all values of the properties it was used upon would be converted to their string representation according to the specified format, instead of being exported as is and linked to a style element like the OpenXml specification suggests.
This prevented the results to be used as actual numerical values, e.g. in formulas, while still retaining their representation.

With this update the inconvenience has mostly been solved, as the following types will now be exported preserving their intended value:

  • Unmanaged numerical types (int, long, double, decimal, etc...)
  • DateTime, DateTimeOffset and DateOnly
  • TimeSpan and TimeOnly

All changes

Full Changelog: 1.43.1...1.44.0

2.0.0 Preview 3

2.0.0 Preview 3 Pre-release
Pre-release

Choose a tag to compare

@michelebastione michelebastione released this 26 Apr 19:02

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.Core for the abtractions, MiniExcel.OpenXml for the OpenXml functionalities, MiniExcel.Csv for the csv functionalities, and finally the full package MiniExcel.
  • Public fields can now get mapped for importing and exporting, not by default but when marked with MiniExcelColumnAttribute or any other MiniExcel attribute.
  • It is now possible to hide columns when exporting a worksheet by marking the respective property with MiniExcelHiddenAttribute or MiniExcelColumnAttribute.Hidden.
  • OpenXmlImporter has been enhanced with new method RetrieveCommentsAsync, allowing for retrieval of both threaded comments and legacy notes from a worksheet.
  • OpenXmlExporter has been enhanced with new method AlterWorksheetAsync, allowing for editing an existing worksheet's name, index and visibility state.
  • The implementation of MiniExcelDataReader has been extended, turning it into a fully functional IDataReader.
  • The RightToLeft parameter was added to OpenXmlConfiguration allowing 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

New Contributors

Full Changelog: 2.0.0-preview.2...2.0.0-preview.3

1.43.1

Choose a tag to compare

@michelebastione michelebastione released this 19 Apr 14:53

What's Changed

  • Fixed headers being printed when using SaveAsAsync despite ExcelIgnore property set to true on DynamicExcelColumn by @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

Choose a tag to compare

@michelebastione michelebastione released this 12 Mar 22:27

What's Changed

This release brings the following features and fixes:

New Features

  • Adds RightToLeft parameter in OpenXmlConfiguration to make worksheets being displayed in a right-to-left layout when opened in Excel by @michelebastione in #935 (mirrors #927)
  • Adds the ExcelHiddenAttribute that, when used to decorate a property, hides the mapped column in Excel by @michelebastione in #935 (mirrors #932)

Bugfixes

  • Fixes IAsyncEnumerator not being properly disposed in AsyncEnumerableWriteAdapter, 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 Dictionary or a DataTable by @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

2.0.0 Preview 2 Pre-release
Pre-release

Choose a tag to compare

@michelebastione michelebastione released this 16 Nov 21:15

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

New Contributors

Full Changelog: 2.0.0-preview.1...2.0.0-preview.2