How amirmahdiyar/exceler works
Exceler is a .NET spreadsheet import/export library. Applications configure typed profiles and register services, then pass workbook streams to import rows lazily (or in chunks) through parsing, validation, and processing, or export model streams through a selected writer engine. The OpenXML engine streams workbook output and supports styling and dropdown validation sheets; EPPlus provides an alternative DOM writer and backs reading. The README also documents async processors, converters, RTL, and EF Core streaming extensions. Some capabilities are documented but their implementation paths were not sampled.
Main entry points: OpenXmlWriterEngine.cs OpenXML engine · DefaultReader.cs Default reader · DefaultWriter.cs Default writer · ExcelerServiceCollectionExtensions.cs Service registration
Components 24
Configuration & registration
- Typed profiles
src/Exceler/Configuration/ExcelProfile.cs - Column mapping
src/Exceler/Configuration/ColumnBuilder.cs - Style rules
src/Exceler/Configuration/ColumnStyle.cs - Service registration
src/Exceler/DependencyInjection/ExcelerServiceCollectionExtensions.cs
Spreadsheet import
- Default reader
src/Exceler/Core/DefaultReader.cs - Row context
src/Exceler/Pipeline/Read/ReadContext.cs - Row parsing
src/Exceler/Pipeline/Read/Handlers/ParseHandler.cs - Row validation
src/Exceler/Pipeline/Read/Handlers/ValidateHandler.cs - Domain processing
src/Exceler/Pipeline/Read/Handlers/ProcessHandler.cs - Row results
src/Exceler/Abstractions/ExcelRowResult.cs - Safe conversion
src/Exceler/Core/Converter/SafeConverter.cs
Spreadsheet export
- Export extensions
src/Exceler/Extensions/ExcelerExtensions.cs - Default writer
src/Exceler/Core/DefaultWriter.cs - Write context
src/Exceler/Pipeline/Write/WriteContext.cs - Write handlers
src/Exceler/Pipeline/Write/Handlers/DataWriterHandler.cs
Workbook engines
- OpenXML engine
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - Row streaming
src/Exceler/Core/OpenXml/OpenXmlRowStreamer.cs - Package assembly
src/Exceler/Core/OpenXml/OpenXmlPackageBuilder.cs - Worksheet coordination
src/Exceler/Core/OpenXml/OpenXmlWorksheetCoordinator.cs - Style compilation
src/Exceler/Core/OpenXml/OpenXmlStyleManager.cs - Dropdown reference sheet
src/Exceler/Core/OpenXml/OpenXmlValidationReferenceSheetWriter.cs - EPPlus writer
src/Exceler/Core/EPPlus/EPPlusWriterEngine.cs
Other components
- Application
- Excel workbook
Connections 31
- Application → Service registration: registers
- Application → Typed profiles: configures
- Service registration → Default reader: registers
src/Exceler/DependencyInjection/ExcelerServiceCollectionExtensions.cs - Service registration → OpenXML engine: selects
src/Exceler/DependencyInjection/ExcelerServiceCollectionExtensions.cs - Service registration → EPPlus writer: selects
src/Exceler/DependencyInjection/ExcelerServiceCollectionExtensions.cs - Typed profiles → Column mapping: builds
src/Exceler/Configuration/ExcelProfile.cs - Column mapping → Style rules: configures
src/Exceler/Configuration/ColumnBuilder.cs - Default reader → Typed profiles: resolves
src/Exceler/Core/DefaultReader.cs - Default reader → Row context: creates
src/Exceler/Core/DefaultReader.cs - Default reader → Row parsing: starts chain
src/Exceler/Core/DefaultReader.cs - Row parsing → Row validation: dispatches
src/Exceler/Core/DefaultReader.cs - Row validation → Domain processing: dispatches
src/Exceler/Core/DefaultReader.cs - Row parsing → Row context: uses
src/Exceler/Pipeline/Read/Handlers/ParseHandler.cs - Row validation → Row context: uses
src/Exceler/Pipeline/Read/Handlers/ValidateHandler.cs - Domain processing → Row context: uses
src/Exceler/Pipeline/Read/Handlers/ProcessHandler.cs - Default reader → Row results: yields
src/Exceler/Core/DefaultReader.cs - Default reader → Safe conversion: converts values
- Application → Default reader: imports workbook
- Application → Export extensions: streams data
- Export extensions → Default writer: delegates
src/Exceler/Extensions/ExcelerExtensions.cs - Default writer → Write context: creates
src/Exceler/Core/DefaultWriter.cs - Default writer → Write handlers: runs
src/Exceler/Core/DefaultWriter.cs - Write handlers → Write context: uses
src/Exceler/Pipeline/Write/Handlers/DataWriterHandler.cs - Default writer → Excel workbook: writes workbook
- OpenXML engine → Style compilation: compiles styles
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - OpenXML engine → Row streaming: creates streamer
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - OpenXML engine → Package assembly: builds package
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - OpenXML engine → Worksheet coordination: writes worksheet
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - OpenXML engine → Dropdown reference sheet: writes references
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - OpenXML engine → Excel workbook: returns bytes
src/Exceler/Core/OpenXml/OpenXmlWriterEngine.cs - EPPlus writer → Default writer: delegates
src/Exceler/Core/EPPlus/EPPlusWriterEngine.cs