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

Windows Forms Discussion :

Afficher dans une datagridview un XML générer par Excel


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 62
    Points
    62
    Par défaut Afficher dans une datagridview un XML générer par Excel
    Bonjour,

    Je cherche à afficher dans une DGV un fichier XML générer par Excel.

    Je suis arriver par un readXML à afficher les données mais je n'arrive pas à garder la structure d'Excel.

    Et question bonus, est-ce qu'il y a une méthode qui permet de réecrire le fichier aprés modification, toujours en XML et toujours lisible par Excel ?


    Merci d'avance.
    Entre la culture des perles fines et ceux qui perlent l'inculture, un point commun domine : c'est le QI de l'huître !

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Qu'est-ce que ton fichier XML ?
    Un document OpenXML ou un XML perso ?

    Tu as la possibilité de lire le fichier XML toi même avec XmlTextReader afin de structurer les données à ta façon.

    Pour la réécriture, c'est les mêmes questions qu'au début, il faut savoir quel type de document XML c'est.

    Mais si tu arrive à le lire, tu devrais pouvoir le réécrire
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par laedit Voir le message
    Qu'est-ce que ton fichier XML ?
    Un document OpenXML ou un XML perso ?
    C'est un fichier XML type bordel made in Microsoft .

    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
    62
    63
    64
    65
     
    <?xml version="1.0"?>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:o="urn:schemas-microsoft-com:office:office"
     xmlns:x="urn:schemas-microsoft-com:office:excel"
     xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:html="http://www.w3.org/TR/REC-html40">
     <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
      <LastAuthor>Guest</LastAuthor>
      <Created>2009-09-29T14:43:47Z</Created>
      <Version>11.5606</Version>
     </DocumentProperties>
     <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
      <WindowHeight>10005</WindowHeight>
      <WindowWidth>10005</WindowWidth>
      <WindowTopX>120</WindowTopX>
      <WindowTopY>135</WindowTopY>
      <ProtectStructure>False</ProtectStructure>
      <ProtectWindows>False</ProtectWindows>
     </ExcelWorkbook>
     <Styles>
      <Style ss:ID="Default" ss:Name="Normal">
       <Alignment ss:Vertical="Bottom"/>
       <Borders/>
       <Font/>
       <Interior/>
       <NumberFormat/>
       <Protection/>
      </Style>
     </Styles>
     <Worksheet ss:Name="Feuil1">
      <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="10" x:FullColumns="1"
       x:FullRows="1" ss:DefaultColumnWidth="60">
       <Row>
        <Cell><Data ss:Type="Number">11</Data></Cell>
        <Cell><Data ss:Type="Number">12</Data></Cell>
        <Cell><Data ss:Type="Number">13</Data></Cell>
       </Row>
       <Row>
        <Cell><Data ss:Type="Number">0</Data></Cell>
        <Cell><Data ss:Type="Number">22</Data></Cell>
        <Cell><Data ss:Type="Number">0</Data></Cell>
       </Row>
    </Table>
      <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
       <PageSetup>
        <Header x:Margin="0.4921259845"/>
        <Footer x:Margin="0.4921259845"/>
        <PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
         x:Right="0.78740157499999996" x:Top="0.984251969"/>
       </PageSetup>
       <Selected/>
       <Panes>
        <Pane>
         <Number>3</Number>
         <ActiveRow>9</ActiveRow>
         <ActiveCol>2</ActiveCol>
        </Pane>
       </Panes>
       <ProtectObjects>False</ProtectObjects>
       <ProtectScenarios>False</ProtectScenarios>
      </WorksheetOptions>
     </Worksheet>
    </Workbook>
    Mon probléme est que quand je fait le readXml il me trouve plusieurs tables et celles qui contiens les données c'est data mais (il y a toujours un "mais" ) elle sont dans une seule colonne alors que d'origine ils y a 3 colonnes :s.

    Je vais tenter de charger les données 3 par 3 dans une datarow et de chargé cette derniére dans une datatable. Mais c'est un peu barbare donc je me demandais si il n'y avais pas une fonction toute prête dans VS (version express).

    Merci d'avance.
    Entre la culture des perles fines et ceux qui perlent l'inculture, un point commun domine : c'est le QI de l'huître !

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Visual Studio n'est qu'un IDE, donc de base il n'a rien, c'est le framework qui devrait avoir.

    Tu n'as toujours pas dit qu'elle était la forme du XML. Comment le génère-tu ? Quelle est son extension ?

    ça m'a l'air d'être un document OpenXML, donc un xlsx par exemple pour excel. Dans ce cas là, tu as le SDK de OpenXML pour lire un document .xlsx dans un programme .net.

    Regardes l'article intitulé [.NET] Lire un fichier Excel avec le SDK Open XML 2.0 de Julien Corioland
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 62
    Points
    62
    Par défaut
    Je suis en 3.5 (Expresse ne laisse pas le choix ^^).

    Mon XML est au format XML, il est générer directement par excel quand on fait "enregistrer sous" => "Feuille de calcul XML *.XML".

    Merci beaucoup pour la piste
    Entre la culture des perles fines et ceux qui perlent l'inculture, un point commun domine : c'est le QI de l'huître !

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Pour information, le XML n'est pas un format, c'est un langage qui est entre autre utilisé par certains formats de fichiers

    Vu que tu connais la structure du XML, et que tu bosse avec le framework 3.5, intéresse-toi à LINQtoXml, tu devrais arriver rapidement à quelque chose.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 62
    Points
    62
    Par défaut
    En fait je sors d'une formation courte en C# (6 mois en intensif) donc j'ai vu pas mal de truc mais très peu en profondeur et je dois avouer que certaine notion se bouscule un peu (notamment le XML :s).

    Je vais fouiller de ce côté la pour avoir un truc plus propre.

    Pour le moment j'y suis arriver avec ce petit bout de code (en sachant que le fichier contiendra toujours 3 colonnes et les valeur par défaut sont 0.
    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
    string filePath = MonFichier;
                DataSet myDS = new DataSet();
    
                myDS.ReadXml(filePath);
    
                int[] Tampon = new int[3];
                int i = 0;
                DataTable myDT = new DataTable ();
                myDT.Columns.Add(); myDT.Columns.Add(); myDT.Columns.Add();
    
                foreach (DataRow myDR in myDS.Tables["Data"].Rows)
                {
                    Tampon[i] = int.Parse(myDR[1].ToString());
                    i++;
    
                    if (i == 3)
                    {
                        myDT.Rows.Add(Tampon[0],Tampon[1],Tampon[2]);
                        i = 0;
                    }
                }
                
    
                dataGridView1.DataSource = myDT;
    Merci bcp du coup de main .
    Entre la culture des perles fines et ceux qui perlent l'inculture, un point commun domine : c'est le QI de l'huître !

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

Discussions similaires

  1. Réponses: 25
    Dernier message: 13/08/2012, 13h50
  2. Réponses: 5
    Dernier message: 28/03/2010, 22h47
  3. Afficher une collection d'objets dans une datagridview
    Par thorgal1612 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2007, 17h38
  4. Réponses: 1
    Dernier message: 19/01/2007, 11h19
  5. Réponses: 2
    Dernier message: 10/12/2006, 13h32

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