Skip to content
CAI
Software that uses CAICheck a score

fsprojects/ExcelProvider

59.7

Adequate · 17 September 2026

644

lines of production code

F#

primary language

1

measurement over time

CAI band scale
CAI lens gauges

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.