Comment exporter de grandes données vers Excel
J'ai une page dans mes critères asp.net application. Lorsque l'utilisateur clique sur le bouton de rapport, d'abord dans une nouvelle page résultats sont liées à une grille de données, alors cette page est exporté vers un fichier excel avec le changement de type de contenu de la méthode.
Qui fonctionne normalement, mais lors de la grande quantité de données, le système.outofmemoryexception est levée.
Que quelqu'un connait un moyen de corriger ce problème, ou un autre utile de technique à faire?
Vous devez vous connecter pour publier un commentaire.
Ceci est probablement dû au fait que votre application est en train d'essayer de construire l'ensemble de la feuille de calcul Excel dans la mémoire et le délivrer à l'utilisateur une fois que c'est terminé. Pour les grands ensembles de données, vous pouvez facilement utiliser toute la mémoire disponible, ce qui est le plus probable, également à l'origine de la demande de considérablement ralentir pour le reste des utilisateurs.
Au lieu de cela, vous pouvez essayer de streaming données de l'utilisateur. Cela permettra d'utiliser la même quantité de mémoire, quelle que soit la taille de votre jeu de données. Vous pouvez reçoit les octets de la feuille de calcul Excel, ou tout simplement de convertir vos données en CSV, puis définissez la Réponse HTTP de Type et de le transmettre à l'utilisateur.
Voici un exemple:
Il y a un tutoriel détaillé à http://bytes.com/topic/asp-net/answers/326796-example-streaming-excel-browser-download
Excel dispose également d'un nombre maximal d'enregistrements, qui, je crois, autour de 65k, mais ne peut pas être une conséquence directe de votre problème, mais peut toujours venir si vous obtenez une erreur tout en travaillant avec eux.