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)
Vous devriez voir apparaître la référence (dans le volet de droite), une référence appelée “Microsoft.Office.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…
M’a été très utile! ça faisait 1h que je cherchais et eureka!
Merci à toi pour ton commentaire, bonne continuation.
Bonjour, merci pour ton tuto !
Sais-tu comment faire pour agir sur tous les onglets du fichier excel ?
Cordialement,
Merci d’avoir partager une façon de faire aussi simple
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.
Salut,
Merci pour ton tuto, claire simple précis et fonctionnel.
Bonne continuation
Merci à toi pour ton commentaire!
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
https://fcialisj.com/ – canadian pharmacy cialis