En essayant de lire un fichier excel avec epplus et d'obtenir le Système.NullException erreur?

Modifier

Sur la base des réponses ci-dessous, l'erreur que j'ai fais l'expérience peut ou peut ne pas être la cause de mon incapacité à lire mon fichier excel. C'est, je ne suis pas d'obtenir des données à partir de la ligne de worksheet.Cells[row,col].Value dans ma boucle for donné ci-dessous.

Problème

Je suis en train de revenir d'un DataTable avec des informations à partir d'un fichier excel. Plus précisément, c'est un fichier xlsx à partir de 2013 excel je crois. Veuillez voir le code ci-dessous:

private DataTable ImportToDataTable(string Path)
        {
            DataTable dt = new DataTable();
            FileInfo fi = new FileInfo(Path);

            if(!fi.Exists)
            {
                throw new Exception("File " + Path + " Does not exist.");
            }

            using (ExcelPackage xlPackage = new ExcelPackage(fi))
            {
                //Get the worksheet in the workbook 
                ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.First();

                //Obtain the worksheet size 
                ExcelCellAddress startCell = worksheet.Dimension.Start;
                ExcelCellAddress endCell = worksheet.Dimension.End;

                //Create the data column 
                for(int col = startCell.Column; col <= endCell.Column; col++)
                {
                    dt.Columns.Add(col.ToString());
                }


                for(int row = startCell.Row; row <= endCell.Row; row++)
                {
                    DataRow dr = dt.NewRow(); //Create a row
                    int i = 0; 
                    for(int col = startCell.Column; col <= endCell.Column; col++)
                    {
                        dr[i++] = worksheet.Cells[row, col].Value.ToString();
                    }
                    dt.Rows.Add(dr);

                }
            }

            return dt;


        }

Erreur

C'est là que les choses deviennent étranges. Je peux voir la valeur correcte dans startCell et endCell. Cependant, quand je regarde worksheet je prends un coup d'oeil sous Cells et je vois quelque chose que je ne comprends pas:

worksheet.Cells.Current' threw an exception of type 'System.NullReferenceException

Tentatives

  • Le reformatage de mon excel avec les champs généraux.
  • Veillant à ce qu'aucun champ dans mon excel est vide
  • RTFM ed epplus de la documentation. Rien de suggestif de cette erreur.
  • Regardé EPPlus erreurs sur stackoverflow. Mon problème est unique.

Honnêtement, j'ai du mal à comprendre ce que cette erreur est en train de dire? Est quelque chose de mal avec mon format? Est quelque chose de mal avec epplus? J'ai lu sur ici, les gens n'avaient pas de problèmes avec 2013 xlsx avec eeplus et je suis seulement en essayant d'analyser le fichier excel en ligne. Si quelqu'un pouvait m'aider à faire la lumière sur ce qu'est cette erreur et comment y remédier. Je vous en serais très reconnaissant. J'ai passé un certain temps à essayer de comprendre cela.

double possible de Ce qui est une exception NullReferenceException et comment puis-je résoudre ce problème?
Actuel pourrait impliquer que vous pour marquer une plage!?, et après que vous disposez d'une cellule en cours. Cela affecte votre programme ne peut pas ,voir tout accès Actuel , ou est-il juste de vous déranger que quelque chose dans l'objet de Cellules throws exception lorsque vous inspectez? qui en fait est très commun dans .net de l'environnement
Oui, ceci n'affecte pas mon programme. Je suis incapable de voir Value lors de l'énumération dans la boucle ci-dessous. Je pensais que cette erreur a été la cause.
Ce n'est pas une réplique. Je ne demande pas pourquoi j'ai un nul ici autant que pourquoi il est à l'origine de mon énumération sur le fond à l'échec. Je ne vois pas Value. Je vais éditer la question pour être plus précis. Merci. 🙂
Merci à tous pour vos réponses pour l'instant. Upvotes pour à tous pour votre participation.

OriginalL'auteur hlyates | 2015-09-11