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:
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
Citation:
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 ? :)