SpreadSheetTasks 0.6.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package SpreadSheetTasks --version 0.6.1
                    
NuGet\Install-Package SpreadSheetTasks -Version 0.6.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SpreadSheetTasks" Version="0.6.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SpreadSheetTasks" Version="0.6.1" />
                    
Directory.Packages.props
<PackageReference Include="SpreadSheetTasks" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SpreadSheetTasks --version 0.6.1
                    
#r "nuget: SpreadSheetTasks, 0.6.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SpreadSheetTasks@0.6.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SpreadSheetTasks&version=0.6.1
                    
Install as a Cake Addin
#tool nuget:?package=SpreadSheetTasks&version=0.6.1
                    
Install as a Cake Tool

SpreadSheetTasks

The .NET library for fast reading and writing Excel files (.xlsx, .xlsb). Some methods/ideas based on great libraries :

Installation

https://www.nuget.org/packages/SpreadSheetTasks/

Install-Package SpreadSheetTasks

dotnet add package SpreadSheetTasks

Usage

Read

using (XlsxOrXlsbReadOrEdit excelFile = new XlsxOrXlsbReadOrEdit())
{
   excelFile.Open("file.xlsx");
   excelFile.ActualSheetName = "sheet1";
   object[] row = null;
   while (excelFile.Read())
   {
       row ??= new object[excelFile.FieldCount];
       excelFile.GetValues(row);
   }
}

Write

using (XlsbWriter xlsx = new XlsbWriter("file.xlsb"))
{
  xlsx.AddSheet("sheetName");
  xlsx.WriteSheet(dataReader);
}

Benchmarks

Tested on: Windows 11, AMD Ryzen 7 7840HS, .NET 10.0.8 (10.0.8)

XLSB Read

Method FileName Mean Error StdDev Gen0 Gen1 Gen2 Allocated
'SpreadSheetTasks - XLSB Read - v1' 200kFile.xlsb 106.01 ms 2.088 ms 3.922 ms 5400.0000 3800.0000 1400.0000 68.59 MB
'SpreadSheetTasks - XLSB Read - v2' 200kFile.xlsb 113.97 ms 2.264 ms 5.380 ms 5000.0000 3500.0000 1000.0000 49.13 MB
'Sylvan.Data.Excel - XLSB Read' 200kFile.xlsb 129.04 ms 2.820 ms 8.137 ms 5000.0000 2000.0000 1000.0000 50.82 MB
'SpreadSheetTasks - XLSB Read - v1' 65K_R(...).xlsb [21] 51.08 ms 0.608 ms 0.539 ms 2400.0000 800.0000 700.0000 28.93 MB
'SpreadSheetTasks - XLSB Read - v2' 65K_R(...).xlsb [21] 56.47 ms 1.055 ms 0.987 ms 1666.6667 - - 13.76 MB
'Sylvan.Data.Excel - XLSB Read' 65K_R(...).xlsb [21] 63.22 ms 0.469 ms 0.415 ms 2875.0000 125.0000 - 23.16 MB

XLSX Read

Method Mean Error StdDev Gen0 Gen1 Gen2 Allocated
SpreadSheetTasks200K 267.5 ms 6.57 ms 19.18 ms 5000.0000 3000.0000 1000.0000 35139.8 KB
Sylvan200k 334.4 ms 5.79 ms 5.42 ms 6000.0000 3000.0000 1000.0000 52327.52 KB
SpreadSheetTasks65k 170.0 ms 3.37 ms 2.98 ms - - - 593.92 KB
Sylvan65K 166.6 ms 2.86 ms 2.68 ms - - - 664.77 KB

XLSB Write (200k rows, mixed types)

Method ReaderType Mean Error StdDev Gen0 Allocated
'SpreadSheetTasks - XLSB Write' GENERAL 127.1 ms 3.33 ms 9.76 ms 1750.0000 30.57 MB
XlsbSylvanWrite GENERAL 178.6 ms 3.49 ms 5.12 ms 1000.0000 36.75 MB

XLSX Write (200k rows, mixed types)

Method ReaderType Mean Error StdDev Gen0 Allocated
'SpreadSheetTasks - XLSX Write' GENERAL 183.6 ms 3.58 ms 5.79 ms 1500.0000 30.74 MB

https://github.com/KrzysztofDusko/SpreadSheetTasks

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 362 6/2/2026
0.6.1 142 5/30/2026
0.6.0 138 5/25/2026
0.5.0 777 2/18/2026
0.4.2 801 10/24/2025
0.4.1 691 7/27/2025
0.4.0 327 5/18/2025
0.3.2 718 10/23/2024
0.3.1 375 8/25/2024
0.3.0 449 5/12/2024
0.2.17 509 2/16/2024
0.2.16 317 2/15/2024
0.2.14 475 1/13/2024
0.2.13 333 1/6/2024
0.2.12 361 11/25/2023
0.2.11 296 11/4/2023
0.2.10 301 11/4/2023
0.2.9 256 11/4/2023
0.2.8 276 9/26/2023
0.2.7 281 9/19/2023
Loading failed

Performance improvements, Csv writer preview