About FormulaEngineer
The fast .NET library that reads Excel formulas accurately, writes them effortlessly, and runs without Excel installed.
Point it at any real-world Excel file — the formula engine handles it.
FormulaEngineer is a .NET library that reads, writes, and accurately evaluates Excel formulas — all without requiring Excel to be installed.
Most .NET Excel libraries can open and create .xlsx
files. Very few can
evaluate the formulas inside them
correctly
. FormulaEngineer is built around that gap: a from-scratch
formula engine that matches Excel's output to last-bit floating-point
precision across the lookup, financial, dynamic-array, and reference
function families.
It's built for production workloads that need to process spreadsheets at scale, on any platform, with strict correctness guarantees on formula evaluation. Pure managed code, .NET 6 and later, Windows, Linux, and macOS.
What FormulaEngineer does
Streaming reader
Forward-only, single-enumeration access to .xlsx
files. Process multi-gigabyte workbooks with flat memory usage.
Streaming writer
Generate spreadsheets row-by-row as your data is produced. Supports merged cells, named ranges, and multi-sheet output.
Formula evaluator
Microsoft-compatible formula engine with dynamic arrays, structured tables, cross-sheet references, and full error propagation.
A formula evaluator that actually evaluates formulas
Most .NET Excel libraries either skip formula evaluation entirely (delegating to Excel COM interop, which doesn't work on Linux or servers) or implement a small subset incorrectly. FormulaEngineer takes a different approach: a from-scratch engine with strict correctness as the design goal.
FormulaEngineer has been verified against hundreds of formulas from production-style workbooks covering real-world financial, lookup, aggregate, and reference patterns. Where Excel's cached values exist in the source workbooks, results match bit-for-bit.
Coverage spans 315+ Excel functions across all major families — lookup, financial, statistical, date/time, text, math, information, and database aggregates.
Function families verified
Lookup: LOOKUP, VLOOKUP, HLOOKUP, XLOOKUP, INDEX, MATCH — including wildcards, case-sensitive matching, reverse search, multi-criteria, and structured table references.
Dynamic arrays: FILTER, SEQUENCE, TRANSPOSE, spill semantics, array-to-array concatenation, boolean-to-numeric coercion.
Financial: PMT, IPMT, PPMT, IRR, XIRR, MIRR, NPV, PV — verified to last-ULP precision against Excel's cached values across all compounding frequencies.
Date and time: DATE, EDATE, EOMONTH, YEAR, MOD, TODAY, NOW — with correct leap-year handling and end-of-month clamping.
Aggregate: SUM, AVERAGE, COUNT, COUNTA, COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS, SUMPRODUCT, AGGREGATE.
Logical and info: IF, AND, OR, NOT, XOR, IFERROR, IFNA, ISBLANK, ISERR, ISNA, ISEVEN, ISODD, TYPE, ERROR.TYPE, CELL.
Text: CONCAT, TEXTJOIN, TEXT, LEFT, MID, RIGHT, LEN, SEARCH, FIND, SUBSTITUTE, EXACT, VALUE.
Patterns that break most engines
Patterns verified that typically fail in non-Microsoft formula
engines: INDIRECT fed an array of sheet names with
COUNTIF broadcasting across resolved ranges;
header-driven nested XLOOKUP that returns an entire
column dynamically; FILTER + SEQUENCE for
Nth-occurrence lookup; the CHOOSE-virtual-table
case-sensitive VLOOKUP trick; matrix lookups with
two-row composite headers; distinct-values extraction with
array-criterion COUNTIF.
Built for production
Cross-platform. Pure managed .NET code targeting .NET 6 and later. No platform-specific bindings, no Excel runtime, no COM interop. Works identically on Windows, Linux, and macOS.
Streaming architecture. The reader and writer are both forward-only and single-enumeration. Memory stays flat regardless of file size — process gigabyte-scale workbooks without OOM concerns.
IEEE 754 compatible.
Floating-point arithmetic matches Excel exactly, including
canonical edge cases (e.g. 1.9 - 1.7 = 0.19999999999999996
— same artifact in both engines).
Honest about correctness. When a regression is found, it's patched, re-verified against the original failing workbook, and re-tested across the existing verification corpus to confirm no other formulas regressed.
Who's behind it
FormulaEngineer is built and maintained by a .NET developer focused on spreadsheet internals. The product scope is narrow on purpose: one library, one set of capabilities, done well. Support emails reach the team that built the product.
Try it before you buy
FormulaEngineer includes a 7-day free trial with full feature access. No credit card required.