Chargement de grande quantité de données excel avec EPPlus

J'ai une base de winforms application que l'utilisateur peut télécharger un fichier excel (.xlsx) et je veux lire le contenu de ce fichier, donc je suis en utilisant EPPlus.

Le problème est, je suis en train de charger le contenu d'un très gros fichier excel, il a 7 onglets, avec un onglet haveing plus de 200k lignes, et un autre onglet avec 70k. Les autres 5 total d'environ 50k.

Ces fichier sera également continuer à s'agrandir.(L'objectif de la fin), Car je veux importer les données, lire les données, et selon les règles/les données que j'ai, j'ai besoin d'écrire des données sur le fichier excel et de les exporter.

Je vais avoir des problèmes mais avec EPPlus dans la réalisation du chargement des données.

voici le code

var file = new FileInfo(filePath);
using (var package = new ExcelPackage(file))
{
    try
    {
        //Get the work book in the file
        ExcelWorkbook workBook = package.Workbook; //Hangs here for about 2 mins
        if (workBook != null)
        {
            if (workBook.Worksheets.Count > 0)
            {
                //Get the first worksheet
                ExcelWorksheet currentWorksheet = workBook.Worksheets.First();
                //gets the currentWorksheet but doesn't evaluate anything...

            }
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

Le code se bloque sur l'emballage.classeur ligne pour près de 2 minutes. Ensuite, il descend dans le cas où il obtient le currentWorkSheet, et si je regarde le contenu de cette variable dans ma montre, rien n'est vraiment chargé, puisqu'il affiche:

L'évaluation de la fonction désactivée en raison d'une précédente évaluation de la fonction temporisée. Vous devez continuer l'exécution pour réactiver la fonction d'évaluation.

J'ai regardé ce lien de EPPlus et il montre que le seul problème de chargement de gros fichiers est charge de haut en bas et de gauche à droite, et il le dit plus de 5 000. J'ai plus que bien donc je me demande si cela pourrait même être possible avec EPPlus?

En outre, j'ai fait quelques recherche sur google et la plupart des questions sont qu'ils ne peuvent pas ouvrir la grande fichiers excel sur le serveur où ils pourraient localement...

J'ai aussi commencé à regarder les SDK Open XML et il semble être une meilleure performance sage, mais aussi beaucoup plus difficile à utiliser du code sage.

  • Ce n'est pas mon travail, à l'aide d'excel. Je suis juste ramasser un projet où il a été laissé. Je n'ai jamais utilisé excel comme base de données. Mais, en ce qui concerne ma réponse, à l'aide de EPPlus fonctionne pour ce que j'ai l'intention de l'utiliser. Je viens de l'accès aux cellules de façon inappropriée. Aussi le sens que j'avais contre l'Open XML est (de mon point de vue) il avait l'air un peu plus fort à code par rapport à l'EPPlus. Encore une fois, je ne suis pas très familier avec elle, donc je ne sais pas. Aurais-je besoin d'aller dans cette voie, j'aurais appris.
  • Si vous avez aucun contrôle sur la façon dont les fichiers sont générés, et les classeurs sont essentiellement des fichiers plats, c'est à dire pas de fonctions/macros/mise en forme, rien de vidage des données, vous seriez mieux avec plusieurs .les fichiers csv au lieu d'un fichier excel avec des classeurs différents. À défaut, @DJKRAZE la suggestion de mettre en place un OpenXML solution est la voie à suivre à ce sujet.
InformationsquelleAutor Robin | 2014-11-21