IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Génération Excel dans une boucle avec Epplus


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Points : 54
    Points
    54
    Par défaut Génération Excel dans une boucle avec Epplus
    Salutations voyageurs du Web !

    J'ai un soucis en VB.

    A l'aide d'EPplus, je dois générer des fichiers Excel portant un nom, ainsi qu'un prénom, que je récupère en base de données, tout est stocké dans une liste sur mon application.

    A l'aide d'une boucle For, je parcours cette liste, et pour chaque ligne de celle-ci, je dois créer mon fichier Excel. Voici le code de ma Fonction actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Function CreerExcel(ByVal val1 As String, ByVal val2 As String, ByVal val3 As String, ByVal val4 As String, ByVal val5 As String)
            'Ouverture de mon fichier Excel existant
            Dim ExistFile = Server.MapPath("~/Styles/Excel/fiche_evaluation.xlsx")
     
            Dim File = New FileInfo(ExistFile)
     
            'Définition du package EPplus
            Using package As New ExcelPackage(File)
                package.Load(New FileStream(ExistFile, FileMode.Open))
     
                'Selection de l'onglet de travail (Excel)
                Dim workSheet As ExcelWorksheet = package.Workbook.Worksheets("Feuil1")
                'Ecriture
                workSheet.Cells("B6").Value = val1
                workSheet.Cells("F6").Value = val2
                workSheet.Cells("C7").Value = val3
                workSheet.Cells("G7").Value = val4
                workSheet.Cells("C8").Value = val5
                'Enregistrement du nouveau fichier
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                Response.AddHeader("content-disposition", "attachment;  filename=Eval_" & val1 & "-" & val5 & ".xlsx")
                Response.BinaryWrite(package.GetAsByteArray())
                Response.Flush()
                Response.Clear()
            End Using
     
        End Function
    Pour le moment, mon code entre dans la boucle, génère le premier fichier Excel, me permet de l'enregistrer et plante ensuite au second passage, à la ligne response.addheader

    le serveur ne peut pas ajouter l'en-tête après l'envoi des en-têtes http.
    En utilisant Response.End() au lieu de Response.clear(), tout se termine une fois le programme sur cette ligne ...

    Une idée ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Dans une réponse tu ne peux renvoyer qu'un seul fichier, car une seule entête.

    Donc soit: tu crée tous tes classeurs puis tu les zip.
    Soit, tu fais un systeme d'iframe/ajax ou socket qui te permet d'avoir plusieurs réponses http.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    Comment faire pour tout créer et Zipper le tout ??? :o

    Ou bien même la deuxième solution :p

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    La première solution est relativement simple:
    tu enregistres au fur et à mesure tes excel dans un memory stream ou meme un fichier disque
    tu utilises une des nombreuse lib disponible pour générer des zip et tu mets tes fichiers dedans

    La seconde solution est nettement plus galère à mettre en place et je ne sais pas quelle est la meilleure implémentation utiliser.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    Je n'ai jamais fait ça Mais je vais essayé de comprendre le fonctionnement de la chose

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formule excel dans une boucle
    Par kedas dans le forum Excel
    Réponses: 6
    Dernier message: 12/10/2007, 17h48
  2. Problème de requête dans une boucle avec ADOQuery
    Par Ekik dans le forum Bases de données
    Réponses: 8
    Dernier message: 14/05/2007, 16h07
  3. Réponses: 1
    Dernier message: 01/01/2007, 13h17
  4. Tri dans une boucle avec numéros
    Par delavega dans le forum ASP
    Réponses: 1
    Dernier message: 24/11/2006, 13h17
  5. Réponses: 4
    Dernier message: 15/06/2006, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo