Bonjour,

J'ai une fonction qui me permet d'exporter une liste de clients vers un fichier Excel. Cette fonction est stocké dans un classe ClientTools qui regroupe plusieurs fonctions utiles pour la gestion des clients. L'idéal serais d'exécuter cette fonction dans ma vue quand j'appuis sur un bouton mais sans recharger la vue. J'ai essayé de trouver des exemples en javascript mais soit cela ne correspondait pas, soit j'ai pas compris

Vous avez des suggestions?

Le bouton :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
<button type="button" class="btn btn-success" id="export_to_excel"></button>


Fonction d'export :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
      public static void ExportExcel(List<CLIENT> clients)
        {
 
            // Nom du fichier
            string excelFileName = "Fichier client.xlsx";
 
            // Licence EPPLUS
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
 
            // Lancement de Excel
            ExcelPackage excel = new ExcelPackage();
 
            // Création d'un feuille
            ExcelWorksheet workSheet = excel.Workbook.Worksheets.Add("Clients");
 
            // Définition de la dimension du tableau
            ExcelRange tableRange = workSheet.Cells[1, 1, clients.Count() + 1, 4];
 
            // En-tête du tableau 
            workSheet.Cells[1, 1].Value = "Designation";
            workSheet.Cells[1, 2].Value = "Adresse";
            workSheet.Cells[1, 3].Value = "Ville";
            workSheet.Cells[1, 4].Value = "Code postal";
 
            // Données du tableau
            int indexLigne = 2;
            foreach (var client in clients)
            {
                workSheet.Cells[indexLigne, 1].Value = client.DESIGNATION
                workSheet.Cells[indexLigne, 2].Value = client.ADRESSE);
                workSheet.Cells[indexLigne, 3].Value = client.VILLE;
                workSheet.Cells[indexLigne, 4].Value = client.CP;
 
                indexLigne++;
            }
 
            // Création du tableau
            ExcelTable table = workSheet.Tables.Add(tableRange, "clientTable");
 
            // Largeur automatique des colonne
            for (int indexColonne = 1; indexColonne < 4; indexColonne++)
            {
                workSheet.Column(indexColonne).AutoFit();
                workSheet.Column(indexColonne).Width += 2;
            }
 
            // Alignement horizontal du texte
            tableRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
 
            // Alignement vertical du texte
            tableRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
 
            // Style du tableau
            table.TableStyle = TableStyles.Medium2;
 
            // Sauvegarde du fichier
            excel.SaveAs(new FileInfo(excelFileName));
 
        }