Lecture d'une feuille Excel et ajout à la list une fois lue. C #

Je cherche à lire un file Excel et à le publier dans un listBox (employeeBox) avec un nom (qui figure sur la première colonne de la feuille Excel toujours). Ensuite, je cherche à supprimer ce nom une fois que j'ai sélectionné le nom dans la zone de list. Mon problème FIRST et MAIN est qu'il ne VA PAS charger les noms dans le listBox. Lorsque je le débogue, il ne semble même pas qu'il soit en train de charger l'excel à lire. J'ai mis le code dans les buttons et il fonctionne bien. Quelqu'un peut-il aider? Ceci est mon premier message posté. Donc, s'il y a des recommandations sur la façon de poser une question, faites-le moi savoir. PS Le code est défini uniquement pour get la valeur des cellules … Pas encore les noms.

private void Form3_Load(object sender, EventArgs e) { Excel.Application xlexcel = new Excel.Application(); xlexcel.Visible = true; ssortingng fileName = "C:\\MyExcel.xlsx"; Excel.Workbook xlWorkBook = xlexcel.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1]; Excel.Range usedRange = xlWorkSheet.UsedRange; ssortingng data = ""; Excel.Range curRange; List<ssortingng> itemsToAdd = new List<ssortingng>(); try { foreach (Excel.Range row in usedRange.Rows) { curRange = (Excel.Range)row.Cells[1, 1]; data = curRange.Cells.Value.ToSsortingng(); itemsToAdd.Add(data); xlWorkBook.Close(); xlexcel.Quit(); } employeeBox.DataSource = itemsToAdd; } catch(Exception) { Console.WriteLine(); } } private void employeeBox_SelectedIndexChanged(object sender, EventArgs e) { employeeBox.Click += employeeBox_Click; } private void employeeBox_Click(object sender, EventArgs e) { throw new NotImplementedException(); } 

Après avoir effectué les corrections appropriées, cela m'a donné une expérience d'exécution. Cela m'a incité à utiliser une tentative de capture … Ce qui a enlevé l'erreur, mais il n'a toujours pas ajouté. Il a montré le MessageBox mais n'a pas ajouté à la list. Maintenant, j'ai expérimenté et découvert qu'il ajoute lorsque vous fermez l'excel, mais cela n'ajoute qu'une chose.

entrez la description de l'image ici entrez la description de l'image ici

Cela devrait fonctionner pour se lancer dans chaque ligne avec des données et get la valeur de la colonne 1.

 Range usedRange = xlWorkSheet.UsedRange; ssortingng data = ""; Excel.Range curRange; List<ssortingng> itemsToAdd = new List<ssortingng>(); foreach (Excel.Range row in usedRange.Rows) { curRange = (Excel.Range)row.Cells[1, 1]; if (curRange.Cells.Value2 != null) { data = curRange.Cells.Value2.ToSsortingng(); itemsToAdd.Add(data); } } listBox1.DataSource = itemsToAdd; xlWorkBook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value); xlexcel.Quit(); 

MISE À JOUR Pour ignorer les lignes vierges – lorsqu'il est utiliséRange returnne … il peut s'agir de lignes vierges si datatables ne se trouvent pas dans des lignes contiguës.

J'espère que cela t'aides!