2017-08-11 1 views
0

J'utilise ClosedXML. Je veux faire une boucle à travers toutes les feuilles disponibles & les supprimer après une condition. mais quand je vérifie si la feuille existe, son exception de lancement. ci-dessous est mon code. S'il vous plaît aidez-moi comment vérifier la validité d'une feuille.ClosedXML: comment vérifier si une feuille de calcul existe?

   for (int i = 1; i <= totalWorkSheets; i++) 
       { 
        if (wb.Worksheet(i)!=null) 
        { 
         if (wb.Worksheet(i).Position != 1) 
         { 
          wb.Worksheet(i).Delete(); 
         } 
        } 
       } 
+0

fondamentalement, il émet une exception en disant feuille je vérifie n'existe pas. ex.Message = "Il n'y a pas de feuille de calcul associée à cette position." – Basha

+0

Vous modifiez la collection au fur et à mesure que vous la parcourez. Est-ce autorisé? Vous souhaiterez peut-être itérer dans l'ordre inverse lorsque vous supprimez. – BurnsBA

+0

merci BurnsBA. qui aide. Bien que la solution que vous avez suggérée soit de collection générique, je trouvais difficile de postuler pour une liste de feuille de travail ClosedXML. mais ça marche bien ici aussi! – Basha

Répondre

0

Comme @BurnsBA dit itérer dessus en arrière pour ne pas modifier la collection ...

for (int i = totalWorkSheets -1 ; i >= 0; i--) 
{ 
    if (wb.Worksheet(i)!=null) 
    { 
     if (wb.Worksheet(i).Position != 1) 
     { 
      wb.Worksheet(i).Delete(); 
     } 
    } 
}