Ouvrir et lire un fichier Excel à partir d’une application C# WPF

Petit tutoriel qui permet d’ouvrir et de lire les valeurs d’un fichier Excel à partir d’une application C# WPF. Cette manipulation vous donnera la possibilité d’afficher ces données à l’écran, de les insérer dans une base de données, etc…

Ajout d’une référence, quelques lignes de code et le tour est joué.

Etape 1 : Ajout de la référence au projet

Pour commencer, il faut ajouter la référence Excel à votre projet C#.

  • Faites un clic droit sur votre projet
  • Cliquez sur “Ajouter une référence…”
  • Sélectionnez l’onglet “COM”
  • Cherchez “Microsoft Excel XX.X Object Library” (voir ci-dessous)

excel_object_library

Vous devriez voir apparaître la référence (dans le volet de droite), une référence appelée “Microsoft.Office.Interop.Excel” :

interop_excel

Etape 2 : Ajout de la référence dans le code

A ajouter dans la partie “directive” du code de votre form ou classe (tout en haut) :

[csharp]using Excel = Microsoft.Office.Interop.Excel;[/csharp]

Etape 3 : Ajout des méthodes d’ouverture/lecture

Pour ouvrir l’explorateur de fichiers windows, sélectionner un fichier, l’ouvrir et lire les données qu’il contient, il faut ajouter les deux méthodes ci-dessous :

[csharp]private void OuvertureLectureXLS()
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;

string str;
int rCnt = 0;
int cCnt = 0;
OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
OpenFileDialog1.Filter = "Excel files (*.xls*)|*.xls*;";
OpenFileDialog1.ShowDialog();
if (OpenFileDialog1.FileName != String.Empty)
{
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(OpenFileDialog1.FileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
cCnt = 1;
for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++)
{
for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
{
str = Convert.ToString((range.Cells[rCnt, cCnt] as Excel.Range).Value2);
MessageBox.Show(str);
}
}
xlWorkBook.Close(true, null, null);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
}

private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
[/csharp]

Maintenant il ne vous reste plus qu’à appeler la méthode “OuvertureLectureXLS()” à partir du clic d’un bouton ou autre…

9 Comments Ouvrir et lire un fichier Excel à partir d’une application C# WPF

  1. Shoops

    Bonjour, merci pour ton tuto !
    Sais-tu comment faire pour agir sur tous les onglets du fichier excel ?

    Cordialement,

    Reply
  2. Nicolas

    Salut,

    Tout d’abord, merci pour ce tuto très utile. J’aimerais maintenant savoir comment lire une colonne en particulier dans un fichier excel mais je ne sais pas comment m’y prendre.

    Mon but étant de stocker les valeurs de chaque colonne dans des variables afin de remplir un constructeur d’objet.

    Reply
  3. Fabien

    Merci pour ce tuto. Petite question: au lieu de faire un “MessageBox.Show” peut-on peupler un datagrid directement ? Autrement dit auriez-vous le même code de lecture de fichier XLS mais avec un datagrid pour afficher les données ? Cordialement, Fabien

    Reply

Leave a Reply to Joey Bronner Cancel reply

Your email address will not be published.