fsprojects/ExcelProvider
59.7
Adequate · 17 September 2026
644
lines of production code
F#
primary language
1
measurement over time
What this system is
This system is an F\# type provider and runtime library for reading Excel files, supporting Xlsx, Csv, and Binary formats. It provides design-time type inference and runtime data access with improved error reporting and comprehensive handling of various data types. The project has been modernized to .NET Standard 2.0 with a new build infrastructure and dependency management.
Removals
Removal of legacy ExcelProvider source files
The legacy implementation files for the ExcelProvider have been removed from the source tree. This includes the core provider logic in \ExcelProvider.fs\, the addressing and parsing module \ExcelAddressing.fs\, the helper utilities in \TypeProviders.Helper.fs\, and the embedded \ProvidedTypes.fs\ sample code. Additionally, the \AssemblyInfo.fs\ metadata file and the \app.config\ containing assembly binding redirects for SharpZipLib and FSharp.Core have been deleted, indicating a cleanup or migration away from this specific code location.
src/ExcelProvider · high confidence
Behavioural changes
ExcelProvider NuGet package updated to version 3.0.0
The NuGet package for ExcelProvider has been updated to version 3.0.0, introducing breaking changes that fix issues \#14 and \#41. The package now targets .NET Standard 2.0 and includes dependencies on FSharp.Core, ExcelDataReader, ExcelDataReader.DataSet, and System.Text.Encoding.CodePages.
nuget · high confidence
ExcelProvider split into Runtime and DesignTime projects with modernized build infrastructure
The ExcelProvider library has been restructured into two distinct projects: ExcelProvider.Runtime (the core library) and ExcelProvider.DesignTime (the type provider implementation). This change is accompanied by a migration from the legacy FAKE/mono build system to a modern .NET Core tooling approach using Paket and FAKE5, requiring the .NET Core 6.0 SDK. The solution now uses Paket for dependency management instead of NuGet packages, and the build process has been updated to support .NET Standard 2.0. Additionally, the project license has been changed from Apache 2.0 to the Unlicense, and the solution file has been updated to reflect the new project structure and Visual Studio version.
(repo-wide) · high confidence
ExcelProvider.DesignTime version 3.0.0 with improved error messages
The design-time component of the Excel type provider has been updated to version 3.0.0. This release includes improved error messages for invalid cast exceptions, providing more context such as file, sheet, column, and row information to help users debug data type mismatches. The assembly metadata has been updated to reflect the new version and target .NET Standard 2.0.
src/ExcelProvider.DesignTime · high confidence
Test coverage
Expanded test coverage for Excel data type handling and row access
The test suite for the Excel provider has been significantly expanded to verify correct parsing of various data types (text, boolean, number, date, time, currency) and to ensure proper handling of empty cells, which now default to null for strings, false for booleans, zero for numbers/currency, and DateTime.MinValue for dates/times. Additionally, new tests validate row access methods, including retrieving values by column header (with case-sensitivity checks), handling out-of-range indices, and verifying the ToString format for row objects.
tests · high confidence
Dependencies
ExcelProvider.Runtime version 3.0.0 release
The ExcelProvider.Runtime library has been updated to version 3.0.0. This release includes the implementation of the runtime logic for reading Excel files (supporting Xlsx, Csv, and Binary formats) via the ExcelDataReader library, along with auto-generated assembly metadata. The package references explicitly define dependencies on FSharp.Core, ExcelDataReader, ExcelDataReader.DataSet, and System.Text.Encoding.CodePages for the netstandard2.0 framework.
src/ExcelProvider.Runtime · high confidence
Initial dependency manifest and lock file setup
The project now uses Paket for dependency management, introducing a new paket.dependencies file and a corresponding paket.lock file. This establishes the baseline set of NuGet and GitHub packages required for the application, including FSharp.Core 8.0.301, ExcelDataReader.DataSet 3.7, and various Microsoft.Build and Fake tooling packages for the build and test groups.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 60.
Lenses
- Code Health 96
- Architecture 69
- Maturity 50
- Readiness 55
- Security 100
Changes since last survey
- 253 commits — 237 feature/other, 16 fixes
By area
- (root) — 105 commits
- (repo) — 54 commits
- src/ExcelProvider — 29 commits
- tests/ExcelProvider.Tests — 16 commits
- src/ExcelProvider.Runtime — 11 commits
- docs/content — 8 commits
- src/ExcelProvider.DesignTime — 6 commits
- .config/dotnet-tools.json — 5 commits
- docs/tools — 5 commits
- .paket/Paket.Restore.targets — 3 commits
- nuget/paket.template — 3 commits
- .paket/paket.exe — 2 commits
- docs/files — 2 commits
- .github/ISSUE_TEMPLATE.md — 1 commit
- docs/cells.fsx — 1 commit
- docs/images — 1 commit
- lib/ICSharpCode.SharpZipLib.dll — 1 commit
Notable commits
- fix: First try to fix the build.
- fix: Fix data length assertion
- fix: Fix description
- fix: Fix for Issue 15
- fix: Fix markdown linting rules and add additional headings
- fix: Fixed the "ToString format" test.
- fix: Minor fix to headers doc
- fix: Update to version 3.0.0 with critical fixes
- fix: fix build
- fix: fix docs
- fix: fix nuget package
- fix: fix nuget package
- fix: fix nuget package
- fix: fix package
- fix: latest TPSDK and fix binding redirects
- fix: latest TPSDK and fix binding redirects
- change: "ExcelProvider: " prefix for exception identification
- change: "ExcelProvider:" prefix for exception identification
- change: #19 - adding support to multiline column names
- change: 1) Updating unit test coverage to verify handling of blank cells. 2) Updating RELEASE_NOTES.md in preparation for publishing another version to NuGet
- …and 233 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fsprojects/ExcelProvider was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 3969b6ff87d9f3efa2c95bce46aa48433fc7d707 — the exact code this score is about.
- Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.