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

C# Discussion :

C# -> Excel


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 57
    Par défaut C# -> Excel
    Bonjour,

    Et oui encore moi :p

    Mes requêtes fonctionnant pratiquement () bien, je doit afficher le résultat dans un fichier excel.

    Grace a quelques recherches dans la doc windows et les nombreux topic a ce sujet j'ai pu faire ceci :

    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
    private void btnExcel_Click(object sender, EventArgs e)
            {
                Excel.Application oXL;
                Excel._Workbook oWB;
                Excel._Worksheet oSheet;
     
                //Start exccel
                oXL = new Excel.Application();
                oXL.Visible = true;
     
                //new workbook
                oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
                oSheet = (Excel.Worksheet)oWB.ActiveSheet;
     
                //Table header nomDesChamps
                int i = 1;
                foreach (var item in nomDesChamps)
                {
                    oSheet.Cells[1, i] = item;
                    i++;
                }
     
                //Format de A1 a D1
                oSheet.get_Range("A1", "Z1").Font.Bold = true;
                oSheet.get_Range("A1", "Z1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
                oSheet.get_Range("A1", "Z1").Cells.EntireColumn.AutoFit();
     
                //Création du tableau
                int t = 0;
                string[,] answer = new string[26,reslutatRequete.Count];
                foreach (var item in reslutatRequete)
                {
                    answer[t, 0] = item;
                    t++;
                }
     
                //fill de A2 a 
                oSheet.get_Range("A2", "Z2").Value2 = answer;
     
                //Sur que c'est visible et donne le controle
                oXL.Visible = true;
                oXL.UserControl = true;
            }
    Je sais c'est pas très propre et assez simpliste

    Mon problème maintenant est pour afficher le contenu de la List<string> reslutatRequete. Son contenu peut avoir une longueurs différentes d'une fois a l'autres et un nombre de ligne différents. Sur une Ligne de cette list, chaque élément est séparé par le caractére "/".

    J'ai trouvé ceci : http://support.microsoft.com/kb/302096/fr
    Mais un peu compliqué pour moi.

    Pourriez me dire comment je doit procéder ?

    Cordialement, jour.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Création du tableau
                string[,] answer = new string[26,reslutatRequete.Count];
                for (int iRow = 0; iRow < reslutatRequete.Count; iRow++)
                {
                        string item = reslutatRequete[iRow];
                        string[] recup = item.Split('-');
     
                    for (int iCol = 0; iCol < recup.Count(); iCol++)
                    {
                        answer[iRow, iCol] = recup[iCol];
                    }
                }
    j'ai réussi a faire ceci avec les aides internet.

    Seulement ca n'affiche que la premiére ligne
    [Edit] Voila la correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //fill de A2 a 
                oSheet.get_Range("A2", "Z" + (reslutatRequete.Count() + 1).Value2 = answer;
    Cela fonctionne mais surement des modif a apporter.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Par défaut
    Mon problème maintenant est pour afficher le contenu de la List<string> reslutatRequete. Son contenu peut avoir une longueurs différentes d'une fois a l'autres et un nombre de ligne différents. Sur une Ligne de cette list, chaque élément est séparé par le caractére "/".
    Bonjour,

    je ne comprends aps vraiment ta demande.

    Ta string peut être longue, et être sur plusieurs ligne, ok.

    Mais que veut tu obtenir comme résultat dans ton Excel?

    Si il y a un saut de ligne, aller dans la case en dessous, à côté?
    Quelle est la règle que tu veux appliquer lorsqu'un texte dépasse une certaine taille, va à la ligne...

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 57
    Par défaut
    Citation Envoyé par Dynamès Voir le message
    Bonjour,

    je ne comprends aps vraiment ta demande.

    Ta string peut être longue, et être sur plusieurs ligne, ok.

    Mais que veut tu obtenir comme résultat dans ton Excel?

    Si il y a un saut de ligne, aller dans la case en dessous, à côté?
    Quelle est la règle que tu veux appliquer lorsqu'un texte dépasse une certaine taille, va à la ligne...
    Bonjour,

    Mon problème est résolu, seulement je me doute bien que mon code n'est pas très propre.
    Si quelqu'un aurait quelque conseil ?
    Le voici au complet :

    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
    private void btnExcel_Click(object sender, EventArgs e)
            {
                Excel.Application oXL;
                Excel._Workbook oWB;
                Excel._Worksheet oSheet;
     
                //Start exccel
                oXL = new Excel.Application();
                oXL.Visible = true;
     
                //new workbook
                oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
                oSheet = (Excel.Worksheet)oWB.ActiveSheet;
     
                //Table header nomDesChamps
                int i = 1;
                foreach (var item in nomDesChamps)
                {
                    oSheet.Cells[1, i] = item;
                    i++;
                }
     
                //Format de A1 a Z1
                oSheet.get_Range("A1", "Z1").Font.Bold = true;
                oSheet.get_Range("A1", "Z1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
                oSheet.get_Range("A1", "Z1").Cells.EntireColumn.AutoFit();
     
                //Création du tableau
                string[,] answer = new string[26,reslutatRequete.Count];
                for (int iRow = 0; iRow < reslutatRequete.Count; iRow++)
                {
                        string item = reslutatRequete[iRow];
                        string[] recup = item.Split('-');
     
                    for (int iCol = 0; iCol < recup.Count(); iCol++)
                    {
                        answer[iRow, iCol] = recup[iCol];
                    }
                }
     
                //fill de A2 a 
                oSheet.get_Range("A2", "Z" + (reslutatRequete.Count() + 1).Value2 = answer;
     
     
                //Sur que c'est visible et donne le controle
                oXL.Visible = true;
                oXL.UserControl = true;
            }

  5. #5
    Membre chevronné Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut Une alternative
    Pour faire du "fichier excel", il y a ce genre de librairie open source

    http://epplus.codeplex.com/

    ça ne fait pas tout, mais ça en fait déjà beaucoup

Discussions similaires

  1. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52
  2. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  3. [Kylix] kylix et excel
    Par gothe dans le forum EDI
    Réponses: 1
    Dernier message: 19/09/2002, 19h44
  4. Réponses: 2
    Dernier message: 22/07/2002, 12h13
  5. [Kylix] Excel via kylix
    Par Billy joel dans le forum EDI
    Réponses: 1
    Dernier message: 23/05/2002, 11h57

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