VIRTUAL REFRACTOR
Learn refraction faster, anywhere and anytime

EPPlus, he remembered from the documentation, wasn’t just a writer. It maintained a full object model of the spreadsheet in RAM: styles, formulas, comments, hidden rows. Every cell you touched became a ExcelRangeBase object, a tiny ghost in memory. After three years of patches and feature creep, his app was loading the entire source template—all forty-two sheets, all conditional formatting, all pivot caches—just to write a single new column of data.

He’d written this C# console app three years ago. Back then, it was a scrappy script using EPPlus 4.5, just to save his team two hours of manual copying and pasting. Now, the system had metastasized. It pulled from three APIs, two SQL databases, and a CSV vomited out by a legacy mainframe in the basement.

Arjun needed a different pattern.

The ExcelPackage.Load() call hung for twelve seconds—an eternity. Then, a NullReferenceException on a cell that should never be empty. Arjun traced it back to line 847: worksheet.Cells["M" + rowIndex].Value = null;

Features

3D Refractor

Epplus //top\\ ⟶

EPPlus, he remembered from the documentation, wasn’t just a writer. It maintained a full object model of the spreadsheet in RAM: styles, formulas, comments, hidden rows. Every cell you touched became a ExcelRangeBase object, a tiny ghost in memory. After three years of patches and feature creep, his app was loading the entire source template—all forty-two sheets, all conditional formatting, all pivot caches—just to write a single new column of data.

He’d written this C# console app three years ago. Back then, it was a scrappy script using EPPlus 4.5, just to save his team two hours of manual copying and pasting. Now, the system had metastasized. It pulled from three APIs, two SQL databases, and a CSV vomited out by a legacy mainframe in the basement. epplus

Arjun needed a different pattern.

The ExcelPackage.Load() call hung for twelve seconds—an eternity. Then, a NullReferenceException on a cell that should never be empty. Arjun traced it back to line 847: worksheet.Cells["M" + rowIndex].Value = null; EPPlus, he remembered from the documentation, wasn’t just