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 :

Créer fichier Gantt .gan


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut Créer fichier Gantt .gan
    Bonjour à tous et bonne année 2015 !

    Je suis un débutant en programmation et j'aimerai créer un fichier.gan (Lisible par Ganttproject).

    Le but est de pouvoir créer un fichier gantt avec un nombre variable de projet suivant différente date. Les sources de donnée seront dans des fichiers excel.

    Pour commencer, j'ai créer un script qui écrit ligne par ligne le fichier gantt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fichier.write('            <taskproperty id="tpd9" name="predecessorsr" type="default" valuetype="text"/>\n')
    Fichier.write('        </taskproperties>\n')
    Fichier.write('        <task id="0" name="Projet 0" color="#8cb6ce" meeting="false" start="2015-02-02" duration="20" complete="0" priority="1" webLink="lien+internet+Projet0" expand="true">\n')
    Fichier.write('            <notes><![CDATA[Notes projet0]]></notes>\n')
    Fichier.write('        </task>\n')
    Pour le moment le fichier ce créer avec le texte qui va bien.
    Maintenant je souhaite modifier le nom du projet en fonction des données excel et la est mon problème ! Dans un premier temps j'ai utilisé le module xlrd et ensuite ajouter la donnée comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fichier.write('            <taskproperty id="tpd9" name="predecessorsr" type="default" valuetype="text"/>\n')
    Fichier.write('        </taskproperties>\n')
    Fichier.write('        <task id="0" name='format(feuille.cell_value(0, 0))' color="#8cb6ce" meeting="false" start="2015-02-02" duration="20" complete="0" priority="1" webLink="lien+internet+Projet0" expand="true">\n')
    Fichier.write('            <notes><![CDATA[Notes projet0]]></notes>\n')
    Fichier.write('        </task>\n')
    Mais cela ne fonctionne pas !

    Merci de votre aide.

    Julien

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu ne dis pas ce qui ne vas pas, alors on devine, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Fichier.write('        <task id="0" name='format(feuille.cell_value(0, 0))' color="#8cb6ce" meeting="false" ...
    L'usage des simples guillemets dans le texte coupe celui-ci en trois parties, en bleu du texte et en noir un objet inconnu de Python.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut
    Excuse moi, en effet python ne reconnait pas cette partie.

    Je ne sais pas comment faire pour intégrer une donnée externe type texte dans une commande "fichier.write".

    En fait je veux écrire tout le bla bla en bleu mais ajouter la donnée externe qui ce situera à la place du texte en noir.

    Merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut
    le but étant d'avoir un texte "figé" + la donnée externe lié à Excel.
    Exemple : aujourd'hui il fait 20°C avec "aujourd'hui il fait °C" et le 20 qui provient du fichier excel.

    En fait j'ai voulu réutiliser ce principe
    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
    import xlrd
     
    #Chemin fichier xls
    chemin = input("Saisir le chemin du fichier xls : ") 
     
    # ouverture du classeur
    classeur = xlrd.open_workbook(chemin)
     
    # Récupération du nom de toutes les feuilles sous forme de liste
    nom_des_feuilles = classeur.sheet_names()
     
    # Récupération de la première feuille
    feuille = classeur.sheet_by_name(nom_des_feuilles[0])
     
    print (u"Lecture des cellules:")
    print ("A1: {}".format(feuille.cell_value(0, 0)))
    print ("B1: {}".format(feuille.cell_value(0, 1)))
    # On ne peut pas lire les les valeurs des cellules avec formules
    print ("C1: {}".format(feuille.cell_value(0, 2)))
    ## Lecture des cellules:
    ## A1: 1.0
    ## B1: 2.0
    ## C1: 
     
    NomFichier_Gantt='C:\Users\A28855\Documents\Developpement\Projet\Gantt.gan'

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Tu peux utiliser le formatage avec % pour ça

    comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> data = 'format(feuille.cell_value(0, 0))'
    >>> txt = '        <task id="0" name="%s" color="#8cb6ce" meeting="false" start="2015-02-02"' % data
    >>> txt
    '        <task id="0" name="format(feuille.cell_value(0, 0))" color="#8cb6ce" meeting="false" start="2015-02-02"'

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Par défaut
    Merci VinsS !

    J'ai reussi en utilisant aussi les +:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier.write('        <task id="0" name="' + feuille.cell_value(0, 0) + '" color="#8cb6ce" meeting="false" start="2015-02-02" duration="20" complete="0" priority="1" webLink="lien+internet+Projet0" expand="true">\n')

Discussions similaires

  1. Impossible de créer Fichier ressource
    Par laclac dans le forum Visual C++
    Réponses: 2
    Dernier message: 16/12/2007, 22h54
  2. Réponses: 3
    Dernier message: 19/05/2007, 17h19
  3. Réponses: 13
    Dernier message: 30/11/2006, 12h01
  4. [CreateObject] créer fichier .dat
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/09/2006, 23h50
  5. Créer fichier XML
    Par elendila dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/03/2006, 07h23

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