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

Langage C++ Discussion :

traduction EXCEL --> C++


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Par défaut traduction EXCEL --> C++
    Je me lance sur "langage" même si je ne suis pas très sûr du sous-forum C++ à utiliser pour cette discussion.

    Je cherche à traduire automatiquement/semi-automatiquement des classeurs Excel en code C++.
    Il s'agirait de pouvoir désigner une collection de cellules du classeur comme étant des entrées
    et une autre collection de cellules comme étant des sorties et d'avoir un outil qui génère le
    code C++ correspondant à l'application de toutes les formules du classeur aux entrées pour obtenir les sorties.
    Je ne m'intéresse pas du tout à la conversion du code VBA éventuellement contenu dans le classeur.



    Le produit "Translator C++ pour Excel" http://www.ultirisk.com/translator-for-excel/ est-il connu
    dans la communauté "developpez" en particulier par les développeurs C++ ? Si oui, et si vous avez pu l'essayer que pensez vous de la qualité du code C++ généré ? Auriez-vous une idée du
    coût de ce logiciel ?

    Par avance, merci de vos réponses...

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Houla...

    as-tu réellement besoin de le faire en C++?
    quelle est ton entrée exacte?
    quelle est ta sortie exacte?

    Il s'agit d'un programme qui prend une liste de définitions de type nom de cellule -> formule, et produit une liste d'assignation de la forme nom de cellule -> valeur

    Dans l'ensemble, ton processus consiste à:
    chercher les dépendances entre les différentes cellules pour construire un graphe orienté de formules
    remplacer tant que c'est possible chaque formule qui ne dépend que de valeurs par sa valeur, jusqu'a ce qu'il n'y ait plus que des valeurs.

    C'est relativement simple.

    Ce qui l'est problement moins, c'est de créer une représentation C++ (en l'occurence) de ces formules, et annexement d'écrire la traduction entre cette forme C++ et la forme proposée à l'utilisateur (fichier Excel ou OpenDocument, ou pourquoi pas csv ou xml)

    Cela dit, ca n'est pas atrocement compliqué, car la liste de fonction est finie

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Par défaut it's a long work !
    J'utilise depuis quelques années un analyseur/générateur qui parse des feuilles Excel et génère du code (j'étais parti sur le Pascal comme cible mais ce pourrait être du C ou du Fortran).
    Pour l'instant cet outil ne fonctionne pas 100% automatiquement et on ne peut pas considérer qu'il fait de la compilation à la volée (ce que je recherche).
    Par ailleurs il ne fonctionne que pour les formules dont le résultat est numérique, dès qu'il y a des traitements de chaines de caractères intermédiaires il ne sait pas faire.
    Si je ne trouve pas une solution robuste et abordable je vais poursuivre la mise à niveau de mon outil !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Négrier Voir le message
    compilation à la volée (ce que je recherche).
    Par ailleurs il ne fonctionne que pour les formules dont le résultat est numérique, dès qu'il y a des traitements de chaines de caractères intermédiaires il ne sait pas faire.
    Pour faire un tel truc l'utilisation du C, ou de tout langage compilé, est de loin une très mauvaise idée.
    A l'inverse Python, et n'importe quel truc interprété, fera le café aisément.

    Cela dit, ton idée initial me parait au mieux farfelu

    Je cherche à traduire automatiquement/semi-automatiquement des classeurs Excel en code C++.
    Ca veut dire quoi ça ? Traduire un classeur en code C++ ?
    Un classeur c'est juste un tableau de données, quel rapport avec du code C++ ? Tu veux transformer un classeur excel en un truc qui fait les calculs de façon linéaire et sorte un résultat ? Pourquoi ne pas faire juste le calcul dans Excel justement qui est fait pour ça ?

    code C++ correspondant à l'application de toutes les formules du classeur aux entrées pour obtenir les sorties.
    Ca fait cher la calculatrice spécifique. Encore une fois Excel est là pour ça, il est inutile et passer par un programme compilé en C++ pour faire de tels calculs.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    En fait, la question qui nous taraude tous, c'est "pourquoi veux-tu faire cela?"

    LibreOffice propose un mode ligne de commande, capable par exemple de calculer un classeur et de l'exporter en pdf.
    Il propose aussi une bibliothèque permettant de travailler directement depuis un programme.
    Comme de plus il y a moyen d'automatiser la traduction xls-odt, je pense qu'en quelques lignes de commande, c'est vite bouclé.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Par défaut Je suis intéressé par le comment et pas par le pourquoi !
    Si on part du principe qu'un document Excel c'est Un classeur c'est juste un tableau de données (cf Bousk) alors effectivement on est loin du compte. Dans mon domaine (scientifique et technique) on arrive à créer des classeurs qui permettent d'effectuer des calculs extrêmement complexes (Attention : je dis bien des classeurs avec plein de petites formules dans les cellules et pas DU TOUT de VBA). L'avantage d'EXCEL est de permettre une programmation déclarative (un peu à la manière d'un système expert) souvent conviviale pour des tronches en sciences/techniques un peu allergiques au codage (type C++). Le défaut d'EXCEL (pour ce type d'utilisation) est son non déterminisme qui peut impliquer :

    • une difficile reprise sur erreur
    • de sérieux problèmes pour reprendre le travail d'un autre
    • des performances parfois désastreuse.



    La traduction d'un classeur Excel en un code déterministe permet :

    • de détecter beaucoup plus facilement les erreurs de calculs (dues par exemple à des incohérences logiques)
    • d'obtenir de bien meilleures performances



    Ainsi, ma propre expérience avec MON analyseur/générateur m'a permis de traduire un classeur Excel très important en un code pascal de plusieurs centaines de millier de lignes mais divisant le temps de calcul par 1000 !
    Bien entendu le code produit correspond à un ensemble de chemins d'exécution déterminé et implique évidemment une perte de souplesse par rapport au classeur Excel original.

    Le code généré est donc "relativement lisible", déterministe et beaucoup plus efficace. On peut l'intégrer compilé sous forme d'une DLL (par exemple) qui peut être intégrée dans une chaîne de calcul pouvant fonctionner dans un
    environnement informatique pour lequel Excel ne peut pas être installé.

    Une remarque de fond sur vos réponses :

    J'espère qu'il est toujours légitime de soumettre sur ce forum des problématiques sans qu'il soit nécessaire de justifier pourquoi on les soumet.
    Libre aux membres du forum de s'y intéresser ou pas !
    Bref, je ne suis pas intéressé par un jugement de valeur sur la problématique que j'ai proposé.
    Par ailleurs j'ai quand même l'impression en naviguant sur le web que je ne suis pas le seul à m'y être intéressé.

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

Discussions similaires

  1. [XL-2013] Traduction Excel / VBA inopérante
    Par Henri1830 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 14/12/2014, 14h10
  2. [OpenOffice][Tableur] Traduction langage macro excel en open office
    Par ickyknox dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 19/03/2008, 13h05
  3. Traduction des fonctions Excel
    Par Toison dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/11/2007, 08h20
  4. Traduction DDE Excel en DDe Delphi
    Par potili2 dans le forum Delphi
    Réponses: 2
    Dernier message: 30/06/2007, 10h51
  5. Traduction d'un tableau excel
    Par Aitone dans le forum Excel
    Réponses: 5
    Dernier message: 04/01/2007, 14h27

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