[C] envoyer des résultats de C à Excel
XeN3009
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
mich62120 Messages postés 631 Date d'inscription Statut Membre Dernière intervention -
mich62120 Messages postés 631 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en stage et on me demande de coder des opérations mathématiques sous
C et d'envoyer le résultat sur Excel!
J'ai trouvé une petite doc là dessus mais j'y comprends rien!!!!
Voici le lien:
http://66.102.9.104/search?q=cache:eeMzyu8tFjQJ:www.univ-evry.fr/pdf/perreira/Excel_cpp.ppt+dll+pour+passer+une+fonction+de+C+%C3%A0+excel&hl=en&ct=clnk&cd=4&client=firefox-a
Et est ce que quelqu'un connait un compilateur qui permet de faire ça?
Merci d'avance
Je suis actuellement en stage et on me demande de coder des opérations mathématiques sous
C et d'envoyer le résultat sur Excel!
J'ai trouvé une petite doc là dessus mais j'y comprends rien!!!!
Voici le lien:
http://66.102.9.104/search?q=cache:eeMzyu8tFjQJ:www.univ-evry.fr/pdf/perreira/Excel_cpp.ppt+dll+pour+passer+une+fonction+de+C+%C3%A0+excel&hl=en&ct=clnk&cd=4&client=firefox-a
Et est ce que quelqu'un connait un compilateur qui permet de faire ça?
Merci d'avance
A voir également:
- [C] envoyer des résultats de C à Excel
- Liste déroulante excel - Guide
- Resultats foot - Télécharger - Vie quotidienne
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Aller à la ligne excel - Guide
6 réponses
Je ne connais,pas l'utilisation de excel en C mais ta doc c'est pour du C++
XeN3009
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
Effectivement, mais c'est tout ce que j'ai pu trouver sur la question....
Tu peux faire comme un fichier texte:
FILE *f;
f = fopen(<chemin>, <attribut>); //permet de créer un flux vers le chemin possédant des capacités données par l'attribut
a la place de <chemin >: chemin en chaîne caractère "c:\\xxxx\\xxxx\\xxxx.xls ( ne pas oublier de doubler les \ --> \\)
a la place de <attribut>:
"r"pour lecture
"w" pour ecriture (ecrase les donnée presentes dans le fichier)
"a" pour ajout
fgets ou fputs pour lire ou ecrire.
fclose(f) pour fermer le flux.
Il te reste à trouver une fonction pour positionner le curseur avant la lecture ou l'écriture.
Chaque espace marque le début d'une nouvelle cellule il me semble il ne reste plus qu'à jouer avec ça pour faire ce que tu veux.
Cela doit pas être le moyen le plus simple mais c'est le seul que je connaisse.Si il y a mieux j'aimerai apprendre.
Mich
FILE *f;
f = fopen(<chemin>, <attribut>); //permet de créer un flux vers le chemin possédant des capacités données par l'attribut
a la place de <chemin >: chemin en chaîne caractère "c:\\xxxx\\xxxx\\xxxx.xls ( ne pas oublier de doubler les \ --> \\)
a la place de <attribut>:
"r"pour lecture
"w" pour ecriture (ecrase les donnée presentes dans le fichier)
"a" pour ajout
fgets ou fputs pour lire ou ecrire.
fclose(f) pour fermer le flux.
Il te reste à trouver une fonction pour positionner le curseur avant la lecture ou l'écriture.
Chaque espace marque le début d'une nouvelle cellule il me semble il ne reste plus qu'à jouer avec ça pour faire ce que tu veux.
Cela doit pas être le moyen le plus simple mais c'est le seul que je connaisse.Si il y a mieux j'aimerai apprendre.
Mich
Tu pourrais me donner quelques indications sur la fonction 'fputs'
prenons un exemple: un code qui effectue une opération 'a+b' où a et b sont des paramètres demandé à l'utilisateur en entrée. Le résultat est ensuite envoyé sur excel => comment tu coderais la fonction fputs pour effectuer cette opération?
Merci d'avance
prenons un exemple: un code qui effectue une opération 'a+b' où a et b sont des paramètres demandé à l'utilisateur en entrée. Le résultat est ensuite envoyé sur excel => comment tu coderais la fonction fputs pour effectuer cette opération?
Merci d'avance
si c'est les résultats qui doivent être envoyés dans Excel, tout écrire dans un fichier .csv en séparant les valeurs par virgule ou tab. Ce fichier pourra être importé dans Excel.
J'ai créé un programme bidon qui fait toutes sortes d'opérations élémentaires, ensuite, je récupère le résultat et je le mets dans un fichier 'xls' ou 'csv' comme expliqué plus haut.
Le fichier excel existe mais le résultat n'est pas le résultat escompté! A l'intérieur du fichier il y 'a un caractère bizarre qui ressemble à un carré?!
Si quelqu'un pouvait m'aider pour le code ou qui connait une autre méthode ça serait gentil!
Merci d'avance
Le fichier excel existe mais le résultat n'est pas le résultat escompté! A l'intérieur du fichier il y 'a un caractère bizarre qui ressemble à un carré?!
Si quelqu'un pouvait m'aider pour le code ou qui connait une autre méthode ça serait gentil!
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
il faut créer un fichier csv, pas xls et il faut l'importer.
int fputs(const char *s, FILE *stream);
Cela doit être un char* constant et cela retourne le nombre de caractère écrit dans le fichier.
Donc il faut que tu convertisses ton int en char* et je ne sais pas faire facilement en C , je ne sais pas si il y a une librairie faite pour.
Attention il me semble que dans un cas similaire j'ai du changé la déclaration à cause du fputs:
Mettre char* Total; //variable ou tu mets l'équivalent du résultat en caractère, et si fputs pose problème:
char Total[100]; //pareil sauf que c'est un tableau (cela règle un problème d'allocation) ou faire en dynamique
Enfin pour ce qui est d'Excel par contre j'en sais rien.
Cela doit être un char* constant et cela retourne le nombre de caractère écrit dans le fichier.
Donc il faut que tu convertisses ton int en char* et je ne sais pas faire facilement en C , je ne sais pas si il y a une librairie faite pour.
Attention il me semble que dans un cas similaire j'ai du changé la déclaration à cause du fputs:
Mettre char* Total; //variable ou tu mets l'équivalent du résultat en caractère, et si fputs pose problème:
char Total[100]; //pareil sauf que c'est un tableau (cela règle un problème d'allocation) ou faire en dynamique
Enfin pour ce qui est d'Excel par contre j'en sais rien.
Je parlais de gérer la taille de ta phrase dynamiquement avec
Cette technique, contrairement au tableau qui garde la zone mémoire dès la déclaration, permet d'allouer cette zone mémoire juste à l'instant où en a besoin ce qui permet de connaître la taille nécessaire à allouer et de ne pas en réserver de trop.
L'avantage des tableaux et de l'allocation dynamique dans ton cas est une histoire d'allocation qui force la variable à être constante pour que la fonction puisse fonctionner sans que la taille de la phrase ne la gêne.Or si tu utilises fputs dans une autre fonction prenant la phrase en argument, elle ne sera pas considéré comme de taille constante comme on peut mettre n'importe quoi en argument et la compilation echouera.
C'est comme ça que l'on m'a expliqué mon problème, j'espère ne pas trop t'embrouiller ni trop me tromper dans les explications.
mallocet
delete.
Cette technique, contrairement au tableau qui garde la zone mémoire dès la déclaration, permet d'allouer cette zone mémoire juste à l'instant où en a besoin ce qui permet de connaître la taille nécessaire à allouer et de ne pas en réserver de trop.
L'avantage des tableaux et de l'allocation dynamique dans ton cas est une histoire d'allocation qui force la variable à être constante pour que la fonction puisse fonctionner sans que la taille de la phrase ne la gêne.Or si tu utilises fputs dans une autre fonction prenant la phrase en argument, elle ne sera pas considéré comme de taille constante comme on peut mettre n'importe quoi en argument et la compilation echouera.
C'est comme ça que l'on m'a expliqué mon problème, j'espère ne pas trop t'embrouiller ni trop me tromper dans les explications.