The .NET library for fast reading and writing Excel files (.xlsx, .xlsb)
$ dotnet add package SpreadSheetTasksThe .NET library for fast reading and writing Excel files (.xlsx, .xlsb). Some methods/ideas based on great libraries :
https://www.nuget.org/packages/SpreadSheetTasks/
Install-Package SpreadSheetTasks
dotnet add package SpreadSheetTasks
using (XlsxOrXlsbReadOrEdit excelFile = new XlsxOrXlsbReadOrEdit())
{
excelFile.Open("file.xlsx");
excelFile.ActualSheetName = "sheet1";
object[] row = null;
while (excelFile.Read())
{
if (row == null)
{
row = new object[excelFile.FieldCount];
}
excelFile.GetValues(row);
}
}
using (XlsbWriter xlsx = new XlsbWriter("file.xlsb"))
{
xlsx.AddSheet("sheetName");
xlsx.WriteSheet(dataReader);
}
| Method | FileName | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
|---|---|---|---|---|---|---|---|---|
| 'SpreadSheetTasks - XLSB Read - v1' | 200kFile.xlsb | 117.29 ms | 1.907 ms | 1.784 ms | 3400.0000 | 2800.0000 | 1400.0000 | 68.49 MB |
| 'SpreadSheetTasks - XLSB Read - v2' |
| 200kFile.xlsb |
| 138.62 ms |
| 2.752 ms |
| 2.826 ms |
| 3000.0000 |
| 2000.0000 |
| 1000.0000 |
| 49.03 MB |
| 'Sylvan.Data.Excel - XLSB Read' | 200kFile.xlsb | 147.70 ms | 1.693 ms | 1.500 ms | 3000.0000 | 2500.0000 | 1500.0000 | 50.82 MB |
| 'SpreadSheetTasks - XLSB Read - v1' | 65K_R(...).xlsb [21] | 60.25 ms | 0.504 ms | 0.447 ms | 1555.5556 | 777.7778 | 777.7778 | 28.83 MB |
| 'SpreadSheetTasks - XLSB Read - v2' | 65K_R(...).xlsb [21] | 75.96 ms | 0.346 ms | 0.323 ms | 666.6667 | - | - | 13.66 MB |
| 'Sylvan.Data.Excel - XLSB Read' | 65K_R(...).xlsb [21] | 90.80 ms | 0.641 ms | 0.535 ms | 1000.0000 | - | - | 23.16 MB |
| Method | Mean | Error | StdDev | Gen0 | Allocated |
|---|---|---|---|---|---|
| 'SpreadSheetTasks - XLSB Write' | 191.4 ms | 3.02 ms | 4.23 ms | 500.0000 | 30.57 MB |
| XlsbSylvanWrite | 234.4 ms | 2.34 ms | 2.19 ms | 500.0000 | 36.75 MB |