Lire des fichiers Excel depuis C#

Comment lire des fichiers Excel (.xls et .xlsx) depuis une application C# ?

Plusieurs bibliothèques disponibles :

EPPlus (pour .xlsx uniquement) :

using (var package = new ExcelPackage(new FileInfo("fichier.xlsx")))
{
    var ws = package.Workbook.Worksheets[0];
    string valeur = ws.Cells[1, 1].Value?.ToString();
}

NPOI (pour .xls et .xlsx) :

using NPOI.SS.UserModel;
IWorkbook wb = WorkbookFactory.Create("fichier.xlsx");
ISheet sheet = wb.GetSheetAt(0);
string val = sheet.GetRow(0).GetCell(0).StringCellValue;

ClosedXML est une autre option avec une API plus simple.