VelocityExcel is a high-performance, ultra fast, streaming Excel (XLSX) reader and writer for .NET with minimal memory footprint. ✓ The only Excel library that delivers ultra-high-speed read and write operations with the lowest memory consumption. ✓ Forward-only streaming read/write (no loading entire file into memory) ✓ Culture-aware parsing of dates, times, durations, numbers, and booleans ✓ Shared string deduplication with overflow protection ✓ Precise ECMA-376 format detection for date/time/duration values ✓ Safe XML parsing ✓ Zero external dependencies Ideal for processing large Excel files in ASP.NET, ASP.NET MVC, ASP.NET Core, Blazor, Web API, Windows Forms, WPF background services, or CLI tools.
$ dotnet add package VelocityExcelVelocityExcel is a high-performance, ultra-fast streaming Excel (XLSX) reader and writer for .NET with minimal memory footprint. Built for processing massive files efficiently without loading them entirely into memory.
dotnet add package VelocityExcel
using VelocityExcel.Api;
using (var writer = new ExcelWriter("output.xlsx"))
{
using (var sheet = writer.CreateWorksheet("Employees"))
{
sheet.WriteRow("ID", "Name", "Department", "Salary", "Hire Date", "Is Active");
sheet.WriteRow(1, "John Doe", "Engineering", 75000.50, new DateTime(2020, 3, 15), true);
sheet.WriteRow(2, "Jane Smith", "Marketing", 82000.00, new DateTime(2019, 7, 22), true);
sheet.WriteRow(3, "Bob Johnson", "Sales", 65000.00, new DateTime(2021, 1, 10), false);
sheet.WriteRow(4, "Alice Brown", "Engineering", 91000.00, new DateTime(2018, 11, 5), true);
}
using (var sheet = writer.CreateWorksheet("Departments"))
{
sheet.WriteRow("Department", "Manager", "Budget");
sheet.WriteRow("Engineering", "Alice Brown", 500000);
sheet.WriteRow("Marketing", "Jane Smith", 350000);
sheet.WriteRow("Sales", "Bob Johnson", 400000);
}
writer.Close();
}
using VelocityExcel.Api;
var options = new ExcelOptions
{
CompressionPreset = "Fastest",
PrettyPrintXml = false,
UseSharedStrings = false,
};
using (var writer = new ExcelWriter("configured_output.xlsx", options))
{
using (var sheet = writer.CreateWorksheet("Products"))
{
sheet.WriteRow("Product ID", "Name", "Price", "In Stock", "Last Updated");
for (int i = 1; i <= 1000; i++)
{
sheet.WriteRow(
i,
$"Product {i}",
19.99 + (i * 0.01),
i % 3 == 0,
DateTime.Now.AddDays(-i)
);
}
}
}
✅ Ideal for:
using VelocityExcel.Api;
using (var reader = new ExcelReader("sample.xlsx"))
{
Console.WriteLine("Worksheets found:");
foreach (var name in reader.WorksheetNames)
Console.WriteLine($" - {name}");
using (var worksheet = reader.OpenWorksheet(0))
{
int rowCount = 0;
foreach (var row in worksheet.ReadRows())
{
rowCount++;
Console.Write($"Row {rowCount}: ");
for (int i = 0; i < Math.Min(3, row.Length); i++)
Console.Write($"[{row[i]?.ToString() ?? "NULL"}] ");
if (row.Length > 3)
Console.Write("...");
Console.WriteLine();
}
Console.WriteLine($"\nTotal rows read: {rowCount}");
}
}
using VelocityExcel.Api;
using (var reader = new ExcelReader("data.xlsx"))
{
if (reader.TryOpenWorksheet("Sheet1", out var worksheet))
{
using (worksheet)
{
foreach (var row in worksheet.ReadRows())
{
if (row.Length > 0)
{
var id = row[0];
var name = row[1];
var value = row[2];
Console.WriteLine($"ID: {id}, Name: {name}, Value: {value}");
}
}
}
}
}
VelocityExcel is proprietary software.
You are granted a royalty-free, non-exclusive license to use the software in commercial and non-commercial applications, including distribution as part of compiled applications.
Redistribution as a standalone library, NuGet package, or source distribution is not permitted.
Refer to the LICENSE file for full terms.
If you find VelocityExcel useful:
Built with performance, safety, and simplicity in mind. 🎯