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

Python Discussion :

Générateur de Tableau XHTML


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Par défaut Générateur de Tableau XHTML
    Bonsoir,

    J'aimerais bien créer un générateur de tableau pour le HTML.

    Par exemple il me demande d'entrer un nombre de ligne et de colonnes et il me donne le code que je peux insérer dans ma page HTML.

    Un tout grand merci d'avance.

    TonyKart13

  2. #2
    Membre confirmé Avatar de arnaudk
    Inscrit en
    Février 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 38
    Par défaut
    La question n'est pas claire, as-tu déjà fait quelque chose ?

    Si tu connais les bases du langage, cela se fait avec deux boucles while imbriquées par exemple, sans trop de soucis.

    Après, tout dépend du type de tableau que tu veux....( avec ou sans th, thead, etc... ).

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Par défaut
    Oui j'ai biensur déjà commencé..

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    # -*- coding: cp1252 -*-
     
    #paramètrage principale######################################################
     
    ligne=0
    capt=0
    cpt=1
    rien="rien sert à faire répété l'énoncé"
     
    # indexation \\\\\\\\\\\\\\\\\\\\\\\\\\\\
    a,b,c=0,0,0#....................        #
    #                              .        #
    list1,list2,list3=[],[],[]# + +.+ + +   #
    #                              .    +   #
    ordre=[a,b,c]#..................    +   #                               
    #                                   +   #
    liste0=
    [list1,list2,list3]# + + + + +   #
    #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
     
    #les parties#___________________
    #                               #
    caption,captionoui="",""        #
    titre=["thead","tbody","tfoot"] #
    #_______________________________#
     
    # stryles //////////////////////////\                       
    style=""                            #
                                        #
    stylet=""                           #
    style1=""                           #
    style2=""                           #
    style3=""                           #
                                        #
    styleform=""                        #
    stylegen=""                         #
                                        #
    ouinon=""                           #
    styleoui=""                         #
     
    styl0=[]                            #
    # ///////////////////////////////////
     
    # tableau -----------------------------------------------
    print"° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"                 #-
    print"°***** forme du tableau ******°"                 #-
    print"° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"                 #-
     
    print'1.    le titre "caption"\n\n\
    en mettre un ? \n>>[oui] / [non]'       #metre un titre au tableau
    while 1:
     
        caption=raw_input("votre réponse: ")
        if caption=="oui":
            captionoui="oui"
            break
     
        if caption=="non":
            break
     
        print'\n [!!!](oui) ou (non)/!\ '
     
    while capt<len(ordre):
     
        print"\n\n",str(capt+2)+'.    le '+titre[capt]+"\n"
        ligne=input("nombre de ligne:\n-> ")
        ordre[capt]=ligne 
        while ligne>0 :
     
            print"ligne n°"+str(cpt)+':',
     
            cell=input("nombre de cellules:\n-> ")
            liste0[capt].append(cell)
     
            ligne-=1
            cpt+=1
        cpt=1
        capt+=1    
    capt=0
     
    #réglage des style css ..................................
    print"\n\n\n° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"           #.
    print"°******** les styles *********°"                 #.
    print"° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"                 #.
    while 1:                                               #.
        ouinon=raw_input("\nI)activer les styles ?\n  >[oui\
    ] / [non]\n\n  votre réponse: ")                       #.
                                                           #.
        if ouinon=="non":
            break
     
        if ouinon=="oui":
            styleoui="oui"
            break
     
        if rien:
            print "\n  /!\ veuillez redéfinir votre choix\n"
     
     
    # si style = oui ************************************************************
    if styleoui=="oui":                                             #css       #*
        stylet=raw_input("\nII)   css du tableau:\n   -> ")         #tableau   #*
        stylet="style=\""+stylet+"\""                                          #*
                                                                               #*
                                                                               #*
    # style (=) ou (!) .........................................................*
        print"\n\nIII)  css des cellules\n"                                    #*
                                                                               #*
        while 1:                                                               #*
            styleform=raw_input("    >>style égaux [=]\n    >>style spécifique [\
    !]\n\n    votre réponse: ")                                                #*
                                                                               #*
            if styleform=="!":          # css différents                       #*
                stylegen="!"                                                   #*
                break                                                          #*
                                                                               #*
            if styleform=="=":        # css égaux                            #*
                stylegen="="                                                   #*
                break                                                          #*
                                                                               #*       
            if rien:                                                             #*
                print "\n/!\ veuillez redéfinir votre choix\n"                 #*
     
     
        # style [=]------------------------------------------------------------#*
        if stylegen=="=":                                                      #*
            style=raw_input("\n\nIVa)le style de toute les cellules:\n    -> ")#*
            style="style=\""+style+"\""                                        #*
                                                                               #*
            style1 , style2 , style3 = style,style,style                       #*
     
     
        # style [!]#*
        if stylegen=="!":
            style1=raw_input("\n\nIVb)le style du table header:\n    -> ")     #*
            style1="style=\""+style1+"\""                                      #*
                                                                               #*
            style2=raw_input("\n\nIVc)le style du table body:\n    -> ")       #*
            style2="style=\""+style2+"\""                                      #*
                                                                               #*
            style3=raw_input("\n\nIVd)le style du table footer:\n    -> ")     #*
            style3="style=\""+style3+"\""                                      #*
                                                                               #*
        style0=[style1,style2,style3]                                          #*
    #****************************************************************************
     
    print"\n\n\n***********************************************************\n\n"
     
    #affichage tableau #############################################################
     
    print"\n<table "+stylet+">\n\
    <!--....................................................-->"
     
    if captionoui=="oui":
        print"  <caption style=\"\"></caption>\n\
    <!--....................................................-->"
     
    else:
        print"<!--<caption style=\"\"></caption>-->\n<!--\
     /!\ pour activer le caption retirez \
    les balises de commentaire /!\ -->\n\
    <!--....................................................-->"
     
    while capt<len(ordre):
     
        # dans le cas où la partie traitée serait vide (ligne = 0)  
        if liste0[capt]==0:       
            print"  </"+titre[capt]+">\n<!--...................\
    .................................-->\n<"+titre[capt]+">" 
     
     
     
        else:
            print"  <"+titre[capt]+">"
            while ordre[capt]>0 :
                cpt=0
     
                while len(liste0[capt])>cpt:
                    print"    <tr ><!--ligne n°",cpt+1,"-->"
     
                    while liste0[capt][cpt]>0:
                        if capt==0:
                            print"        <th "+style0[capt]+"></th>"
                        else:
                            print"        <td "+style0[capt]+"></td>"
                        liste0[capt][cpt]-=1
     
                    print"    </tr>"
                    cpt+=1
                    ordre[capt]-=1
            print"  </"+titre[capt]+">\n\
    <!--....................................................-->"
        capt+=1
     
     
     
    print"</table>"
    Mais je ne vois pas ma faute.. Il me dit pourtant une erreure..

    Merci, pourrais tu me donner ta version avec les 2 boucles ?

    Cordialement, TK13

  4. #4
    Membre éclairé Avatar de Snooky68
    Homme Profil pro
    Développeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web/Python/PHP
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Par défaut
    Salut,

    Alors... je ne veut pas être méchant! Je ne veut pas te faire peur non plus... mais ton code est.... heu.... très moche lol!

    C'est juste des conseilles de programmeur se que je vais te donnée, tu en ferra se que tu voudra ensuite!

    Se qu'il faut, surtout quand tu présente ton code sur un forum, c'est qu'il soit "attractif". Les ########, les ///////////, les .............. et les ++++++++++ ne serve à rien!
    Sa délimite des trucs... mais ont sait pas trop quoi!
    De la même manière les #., #- ou # sans aucun commentaire ne serve à rien.

    Ensuite, malgré le nombre de commentaire qui résulte de toutes ces petites "décoration" on ne voit presque pas de "vrai" commentaire! Je veut parlez de truc qui commence par # avec un texte clair, cour et précis sur la chose et qui termine simplement par un point!
    du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #Voici la fonction truc: Elle ecrit la variable "param".
    def truc(param):
        print param
    Les variables que tu initialise au début du code: C'est bien, mais pas nécessaire en python (on est pas en C). Si nécessaire tu peut initialiser tes variables juste avant ou au moment de les utiliser.
    Tout le monde ne serra peut être pas d'accord avec sa.. mais pour débuter sa te simplifiera la vie et t'évitera des oublies!

    Une autre chose TRÈS importante en python dans les forums! Il faut indenter ton code, sinon c'est carrément casse tête pour nous! (Je sais... les forums ne prennent pas la tabulation qu'il faut remplacer par des espaces, mais avec un bon éditeur de texte (notepad++) tu fait sa rapidement)

    Essai aussi d'utiliser des fonctions! C'est pas très compliqué et sa permet de "ranger" et d'ordonner ton code!

    Voici un petit exemple vite fait:
    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
    66
    67
    68
    69
    70
    # -*- coding: cp1252 -*-
     
    #importation des modules
    import os
     
    def titre():
        #Fonction titre: Permet de demander le titre à l'utilisateur
        titre = raw_input("Entrer le titre: ") #Je demande à l'utilisateur
        if titre == "": #Vérification du titre
            return False #Si pas de titre alors titre est False
        else:
            return titre #Si un titre alors je le renvoi
     
    def nb_colonne():
        #Fonction nb_colonne: Permet de demander le nombre de colonne à l'utilisateur
        try:
            nb = input("Entrer le nombre de colonne: ") #Je demande à l'utilisateur
            return nb #je renvoi la valeur
        except:
            return False
     
    def nb_ligne():
        #Fonction nb_ligne: Permet de demander le nombre de ligne à l'utilisateur
        try:
            nb = input("Entrer le nombre de ligne: ") #Je demande à l'utilisateur
            return nb #je renvoi la valeur
        except:
            return False
     
     
     
    def gen_tab(titre, ligne, colonne):
        #Fonction gen_tab pour génération_tableau: Permet de Générer le tableau suivant les parametres "titre", "colonne", "ligne"
        tab = "<table>%s" % os.linesep
        if titre:
            tab += "<caption>%s</caption>%s" % (titre, os.linesep)
        for i in range(ligne):  #On boucle autant de foix que de ligne
            tab += "<tr>%s"%os.linesep  #Pour chaque ligne une balise tr
            for j in range(colonne):    #On boucle autant de foix que de colonne
                tab += "<td></td>%s"%os.linesep   #Pour chaque colonne une balise <td></td>
            tab += "</tr>%s"%os.linesep #Fermerute de la balise tr
        tab += "</table>%s"%os.linesep  #Fermeture du tableau
        return tab  #Je renvoi la variable tableau
     
     
    #Pour faire zoli!!
    print "° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"
    print "°***** forme du tableau ******°"
    print "° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °"
     
    #Et maintenant au boulot!
     
     
    le_titre = titre()  #Je demande le titre avec la fonction "titre()"
     
    le_nombre_de_colonne = nb_colonne() #Je demande le nombre de colonne
    while le_nombre_de_colonne == False:
        print "erreur"
        le_nombre_de_colonne = nb_colonne()
     
    le_nombre_de_ligne = nb_ligne() #Je demande le nombre de ligne
    while le_nombre_de_ligne == False:
        print "erreur"
        le_nombre_de_ligne = nb_ligne()
     
    le_tableau_html = gen_tab(le_titre, le_nombre_de_colonne, le_nombre_de_ligne) #Je transmet les infos à la fonction qui va générer mon tableau HTML
     
    #A partir d'ici ma variable "le_tableau_html" contient du code HTML
     
    print le_tableau_html #J'affiche ce code à l'écran!
    Ce code te génère un tableau html tout simple. Copie ce code dans ton éditeur python et regarde comme c'est clair! ( prétentieux??? Moi?? )

    Étudie ce code, et essai de le comprendre! Une fois que tu l'aura compris tu aura je pense se qu'il te faut pour bien codé et réussir ton projet sans te demander comment sa se fait que t'a une erreur!

    Un dernier conseille... commence par le début si tu veut programmer! Sans allez chercher des trucs compliqué comme les class, regarde quand même les fonctions, type de variable, etc...

    Et si tu a des questions... on est la!

Discussions similaires

  1. Comment transformer un tableau XHTML en fichier Excel
    Par JLC83 dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 12/08/2010, 15h00
  2. Réponses: 6
    Dernier message: 31/01/2007, 10h19
  3. cellules d'un tableau xhtml css
    Par Bibouda dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 04/01/2006, 12h55

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