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

ASP.NET Discussion :

[ASP.Net][C#] Export de Table en XLS


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 183
    Points : 79
    Points
    79
    Par défaut [ASP.Net][C#] Export de Table en XLS
    Hello world,

    je cherche à exporter des données sous la forme d'un fichier XLS.

    j'ai commencé avec ce tuto : http://philippe.developpez.com/artic...erexcelaspnet/

    mais si j'ai bien un fichier à la sortie, ce fichier est impossible à ouvrir dans excell (que ce soit avec l'extension .xls + double-cliquant dessus, ou alors avec l'extension xml + importation depuis Excel)

    ci-dessous mon code de test (99%copié-collé des sources du tutos)

    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
    60
    61
    public static void export_table_2_xls(HttpResponse Response, Table sourceTable, String sheetName)
    {
                // PrepareHeaders
                {
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment; filename=resultat.xls");
                    Response.ContentType = "text/csv";
                }
     
                // Return .xls file in response
                {
                    Workbook book = new Workbook();
     
                    WorksheetStyle style = book.Styles.Add("Entete");
                    style.Font.Bold = true;
                    style.Font.Color = "White";
                    style.Alignment.Horizontal = StyleHorizontalAlignment.Center;
                    style.Interior.Color = "Blue";
                    style.Interior.Pattern = StyleInteriorPattern.Solid;
     
                    Worksheet sheet = book.Worksheets.Add("Exemple");
                    WorksheetRow row = sheet.Table.Rows.Add();
                    row.Cells.Add(new WorksheetCell("Ventes par mois", DataType.String, "Entete") { MergeAcross = 5 });
     
                    row = sheet.Table.Rows.Add();
                    row.Cells.Add(new WorksheetCell("Commercial", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell("Janvier", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell("Février", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell("Mars", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell("Avril", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell("Total", DataType.String, "Entete"));
     
                    row = sheet.Table.Rows.Add();
                    row.Cells.Add(new WorksheetCell("Jean Dupont"));
                    row.Cells.Add(new WorksheetCell("5", DataType.Number));
                    row.Cells.Add(new WorksheetCell("8", DataType.Number));
                    row.Cells.Add(new WorksheetCell("6", DataType.Number));
                    row.Cells.Add(new WorksheetCell("10", DataType.Number));
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(RC[-4]:RC[-1])" });
     
                    row = sheet.Table.Rows.Add();
                    row.Cells.Add(new WorksheetCell("Victor Hugo"));
                    row.Cells.Add(new WorksheetCell("54", DataType.Number));
                    row.Cells.Add(new WorksheetCell("26", DataType.Number));
                    row.Cells.Add(new WorksheetCell("34", DataType.Number));
                    row.Cells.Add(new WorksheetCell("75", DataType.Number));
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(RC[-4]:RC[-1])" });
                    row = sheet.Table.Rows.Add();
     
                    row.Cells.Add(new WorksheetCell("Total", DataType.String, "Entete"));
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(R[-2]C:R[-1]C)", StyleID = "Entete" });
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(R[-2]C:R[-1]C)", StyleID = "Entete" });
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(R[-2]C:R[-1]C)", StyleID = "Entete" });
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(R[-2]C:R[-1]C)", StyleID = "Entete" });
                    row.Cells.Add(new WorksheetCell() { Formula = "=SUM(RC[-4]:RC[-1])", StyleID = "Entete" });
     
                    book.Save(Response.OutputStream);
                }
    }
    Le tuto étant plutôt vieux, j'imagine que ce n'est plus compatible avec les technos actuelles.

    D'où ma question : on fait comment en 2016 pour générer un fichier Excel ?

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 183
    Points : 79
    Points
    79
    Par défaut
    ZUT, je me suis planté de forum ... merci à un admin de me déplacer dans Asp.Net ...

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 183
    Points : 79
    Points
    79
    Par défaut
    Après avoir remarqué que mon fichier xls faisait >40ko, je l'ai ouvert et j'ai vu avec stupeur que ma page HTML était dedans !

    j'ai donc rajouté "Response.End();" après le book.save() et depuis c'est OK

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

Discussions similaires

  1. Session ASP.NET tiré d'une table
    Par Tidus159 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2008, 16h59
  2. [ASP.NET][C#]Export de plusieurs GridView vers Excel
    Par doudou_rennes dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/01/2008, 10h34
  3. [10] [ASP.NET/C#] Exporter un état
    Par hippoX dans le forum SDK
    Réponses: 1
    Dernier message: 07/06/2007, 10h55
  4. Réponses: 1
    Dernier message: 12/07/2006, 11h26
  5. [CR][ASP.NET][C#] Export vers PDF
    Par kaoutara dans le forum SDK
    Réponses: 2
    Dernier message: 20/10/2004, 11h33

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