A powerful .NET library for processing Excel files using OpenXML. Provides an optimized API for reading, writing, and creating spreadsheets without requiring Microsoft Excel. Supports fluent configuration, NuGet integration, and flexible document handling.
$ dotnet add package netaera.OpenXml.Excelnetaera.OpenXml.Excel is a powerful OpenXML-based library for processing Excel files in C#.
Install the package via NuGet:
dotnet add package netaera.OpenXml.Excel
Or in Visual Studio:
netaera.OpenXml.Excel.
// Reads data from the first sheet in the document "data.xlsx" and
// converts the data to the data types specified in the 'ColumnInfos' configuration.
var reader = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").BuildReader();
ISheetDataRows dataRows = reader.Read(r =>
{
r.ColumnInfos
.Add("A", DataType.Integer)
.Add("B")
.Add("C", DataType.OADate) // Returns the OADate value from the Excel data.
.Add("C", DataType.DateTime)
.Add("D", DataType.Boolean)
.Add("E", DataType.Currency)
;
});
// Writes the data to columns `A`, `B`, `E`, `G`, and `I`. Column `E` contains a date, and column `I` contains a decimal currency amount.
var writer = CreatorBuilder.Build(cb => { cb.FileName = path; cb.DefaultSheetName = sheetName; })
.Create() // Erstellt eine Instanz von IDocument
.BuildWriter(wc =>
{
wc.Values = dataRows;
wc.ColumnInfos.Add("A").Add("B", DataType.Integer).Add("E", DataType.OADate).Add("G").Add("I", DataType.Currency);
});
var result = writer.Write();
if (result is false)
DebugInfo.WriteLine(writer.Messages);
// Reads all data from the first sheet in the document "data.xlsx"
var dataRows = DocumentBuilder.Build(config => config.FileName = "data.xlsx")
.BuildReader()
.Read();
// Reads all data from the worksheet named 'Data' in the file "data.xlsx", starting from cell B2
ISheetDataRows dataRows = reader.Read(r =>
{
r.SheetName = "Data";
r.FromCellAddress = "B2";
});
// Reads the first 100 cells from columns B, D, E, and F based on column names
var rows = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").BuildReader(r =>
{
r.ColumnInfos.InitializeWith (new String[] { "B", "D", "E", "F" });
r.RowCount = 100;
}).Read();
// Reads the first 100 cells for columns 1 to 8 and marks the first row as a header row
var rows = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").BuildReader(r =>
{
r.FromColumn = 1;
r.ToColumn = 8;
r.RowCount = 100;
r.FirstRowIsHeaderRow = true;
}).Read();
// Reads all cells starting from cell A2
var rows = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").BuildReader(r =>
{
r.FromCellAddress = "A2";
}).Read();
// Reads all cells within the range from B2 (top-left corner) to E22 (bottom-right corner)
var rows = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").BuildReader(r =>
{
r.FromCellAddress = "B2";
r.ToCellAddress = "E22";
}).Read();
// Provides direct access to the underlying SpreadsheetDocument
var document = DocumentBuilder.Build(doc => doc.FileName = "data.xlsx").Open();
var spreadsheet = document.SpreadsheetDocument;
This package can be freely used without restrictions.
However, the source code must not be copied, decompiled, modified, or published.
See LICENSE for further details.
© 2025 Paul Berthold Goebel - creativesource. All rights reserved.