Comment créer une feuille Excel en C# ?

Il existe différentes librairies open source que l'on peut intégrer dans son projet et qui créent des feuilles de calcul Excel.

Le langage C# possède des outils permettant d'interagir avec les applications et les formats de fichiers de la suite Office de Microsoft. Il est donc possible de créer et de manipuler des fichiers Excel. Il existe différentes librairies open source que l'on peut intégrer dans son projet et qui créent des feuilles de calcul Excel (autre astuce JDN sur C# : Comment cloner des objets en C# ?).

ExcelLibrary est une bibliothèque open source qui permet de manipuler les fichiers Excel au format antérieur à Office 2007 (.xls).

Création d'un fichier Excel avec ExcelLibrary :
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet(Feuil 1);
workbook.Worksheets.Add(worksheet);
workbook.Save(C:monFichierExcel.xls);

EPPlus est une autre bibliothèque qui elle prend en charge les fichiers au format Office 2007/2010/2013 (.xlsx). EPPlus possède l'avantage de gérer de meilleure manière les tableaux croisées dynamiques, qui facilitent le tri et le résumé de données.

Création d'un fichier Excel avec EPPlus :

FileInfo newFile = new FileInfo(@C:monFichierExcel.xlsx);
ExcelPackage pck = new ExcelPackage(newFile);

Le plugin NPOI est l'adaptation .NET du plugin POI pour Java. Il permet de gérer tous les formats d'Excel. Si vous préférez ne pas utiliser de plugin, orientez-vous vers OLEDB. OLEDB est une couche d'abstraction de base de données. Elle permet de manipuler des données sans se soucier du système qui les stocke. Grâce à OLEDB vous pouvez donc stocker vos données dans un fichier Excel.

Création d'une feuille de calcul Excel avec OLEDB :

using (OleDbConnection conn = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:monFichierExcel.xls;Extended Properties='Excel 8.0;HDR=Yes'))
{
 conn.Open();
 OleDbCommand cmd = new OleDbCommand(CREATE TABLE [Feuil1] ([Colonne 1] string, [Colonne 2] string), conn);
 cmd.ExecuteNonQuery();

Divers