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

Plateformes Discussion :

Excel via QAxObject [Windows]


Sujet :

Plateformes

  1. #1
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut Excel via QAxObject
    Bonjour,

    Je sais écrire des données dans une suite de cellules dans Excel un utilisant le code ci-dessous, mais je n'arrive pas à trouver comment simplement les lire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      QList< QVariant> table;
      QVariant vTable(table);
      range = worksheet->querySubObject("Range(A1,G123)");
      range->dynamicCall("SetValue(const QVariant&)", vTable);
    J'ai essayé ca, mais je sents bien que ca va pas, en effet ca plante sur la boucle d'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      QList< QVariant> table;
      QVariant vTable(table);
      range = worksheet->querySubObject("Range(C1:C10)");
      vTable = range->dynamicCall("Value()",table);
      for (int i=1;i<=10;i++) {
        QString test=table[i].toString();
        qDebug() << test;
      }
    Merci de votre aide

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 585
    Points
    188 585
    Par défaut


    Je n'ai jamais touché à ActiveQt, mais j'ai remarqué que ton bout de code n'est pas complet : comment définis-tu la variable worksheet ?

    Maintenant, je ne suis pas sûr que le problème vienne d'ActiveQt : tu commences à indicer table à 1 et non à 0 ; quelle est la taille de table avant d'entrer dans ta boucle (autrement dit : quel est l'effet de l'assignation à vtable) ?

    Quand tu testes ton code, le problème vient-il de table[i] ou de l'appel à toString ? Ca serait bien d'avoir plus de détails que "ça plante", par exemple avec un débogueur.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Salut,

    Effectivement mon bout de code est incomplet, mais dans mon esprit, c'était uniquement pour illustrer, je ne savais vraiment pas comment m'y prendre. Alors désolé pour la confusion.
    Finalement à force de recherche j'ai fini par trouver la technique permettant de lire un tableau Excel d'un coup plutôt que cellule par cellule, ce qui est extrêmement long. Donc si dessous si ca intéresse quelqu'un et merci tout de même pour la réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      QString Range = "A1:T100"
      QAxObject *allEnvData = worksheet->querySubObject("Range(QString)",Range);
      QVariant allEnvDataQVariant = allEnvData->property("Value");
      QVariantList allEnvDataList = allEnvDataQVariant.toList();

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 585
    Points
    188 585
    Par défaut
    Merci de partager ton retour .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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

Discussions similaires

  1. Automation excel via Access -
    Par Celia1303 dans le forum Access
    Réponses: 4
    Dernier message: 18/11/2005, 12h45
  2. [VB.NET] problème d'utilisation de substotal (excel via VB)
    Par Pynuch dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/11/2005, 13h53
  3. [débutant] manipulation de doc Excel via C++
    Par htcrusoe dans le forum C++
    Réponses: 4
    Dernier message: 17/03/2005, 19h57
  4. Connection avec MS Query (Excel) via ODBC MySQL
    Par javigle dans le forum Installation
    Réponses: 7
    Dernier message: 23/11/2003, 21h03
  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