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 :
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
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
En utilisant Response.End() au lieu de Response.clear(), tout se termine une fois le programme sur cette ligne ...le serveur ne peut pas ajouter l'en-tête après l'envoi des en-têtes http.
Une idée ?
Partager