bonjour,
je cherche a faire un programme en C qui ouvre des fichier excel de données boursiere pour calculer des choses.
Y connaissez vous quelque chose? Sauriez vous me redirigeer?
merci.
bonjour,
je cherche a faire un programme en C qui ouvre des fichier excel de données boursiere pour calculer des choses.
Y connaissez vous quelque chose? Sauriez vous me redirigeer?
merci.
Salut,
Tu trouveras la spécification des fichier de type .xls ici: http://www.wotsit.org/
EN principe, c'est un format propriétaire, et j'ai comme des doutes que sa spécification est le fruit de rétro-ingénieurie (peut poser certains problèmes légaux, mais je ne suis pas un spécialiste).
Alternatives:
- Utiliser OpenOffice calc et se baser sur la spécification du format de fichier du tableur qui lui est ouvert
- Tu peux egalement, depuis Excel, exporter tes données au format CSV (Comma spearted values). Ce type de fichier est relativement facile à manipuler par la suite.
P.S. Avec matlab, j'avais trouvé des routines xlswrite() et xlsread(), c'est donc que c'est peut-être possible en C. Si c'est possible, je pense que quelqu'un l'a déjà fait et làest ton ami!
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Bon, j'ai pas cherché longtemps, mais il existe un script xls2csv écrit en Perl http://search.cpan.org/~ken/xls2csv-1.06/script/xls2csv ainsi qu'un module Spreadsheet:: ParseExcel, toujours pour Perl. Je suis certain qu'en cherchant bien, tu devrais trouver une API C qui te permet de manipuler des fichiers Excel...
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Bonjour,
Je ne sais pas pourquoi cette question revient très souvent, j'ai donc décidé de me pencher sur le problème
Pour commencer, je te conseille la doc http://www.wotsit.org/download.asp?f=excel qui est un PDF issu du travail réalisé par l'équipe d'OpenOffice.org
Les choses interessantes semblent commencer à la section 5 Worksheet/Workbook Records (sans oublier le point 1.5 Byte Order où tu apprends que tout est a l'envers !)
Ensuite tu ouvre ton éditeur héxadécimale, le pdf, ton IDE sans oublier le semi-remorque de café !
Si tu n'as pas de contraite concernant le format de ton fichier, le plus simple est encore d'utiliser le format CSV![]()
Bonsoir,
Envoyé par BernardT
Envoyé par mujigka
Vous me paraissez un peu "violents" tous les deuxEnvoyé par gege2061
Attaquer par le format, comme ça, sans préambule...
Si le PO est (et sera toujours) sous Windows, il serait probablement plus simple qu'il aille d'abord voir du côté des techno' Microsoft, genre OLE Automation.
Certes, en C (et c'est MS qui le dit) ce n'est pas gagné :Mais il fournissent au moins un exemple qui permet de modifier une propriété sous Excel (cf. lien ci-dessus : je vous laisse admirer la simplicité).Envoyé par [url=http://ask.support.microsoft.com/?scid=kb%3Ben-us%3B181473&x=18&y=9]KB181473[/url]
---- Edit 1 - DEBUT ----
Je viens de trouver ça, à l'instant, et ça a l'air correct (non testé, j'ai juste jeté un oeil au code) : COM Access Library (apparemment pas mal d'autres choses sympa sur le site).
---- Edit 1 - FIN ----
Oui, des choses portables existent. Même en PHP. Mais rien qui donne vraiment l'impression d'être complet/suivi/simple d'après le peu que j'ai vu (j'espère me tromper).Envoyé par mujigka
Personnellement, si je devais écrire quelque-chose de portable et que j'étais forcé de travailler avec des XLS, je jetterai un oeil par ici (je n'ai rien essayé de ce qui suit) :
http://www.netsw.org/system/libs/ole/cole-2.0.1.tar.gz
http://www.penguin.cz/~fojtik/cole/cole.htm
Puis dans le code d'applications qui gèrent déjà le format (ex. : gnumeric, bien avant OOo qui doit être un peu indigeste vu la taille).
C'étaient mes 2 centimes de la nuit...
Cordialement,
DS.
J'admets avoir été un peu radical. Comme la question revient souvent, je me suis également baladé sur Google, et je suis tombé sur OLE Automation et des exemples sans MFC ni #import avec C et C++. Les solutions proposées semblent en effet plus compliquées à manipuler en C. Mais cela m'étonnerait qu'il existe pas de "wrapper" de plus haut niveau pour manipuler des feuilles Excel.Envoyé par David.Schris
Sinon, les dernières versions de Gnumeric sont fournies avec un utilitaire en ligne de commande appelé ssconvert qui permet de convertir entre différent formats de tableurs:
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part ssconvert feuille_excel.xls feuille_excel.gnumeric
Ce convertisseur ne permet pas de convertir plusieurs dans le même fichier csv et ne convertit que la feuille courante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ssconvert feuille_excel.xls feuille_excel.csv
Ensuite, une fois le fichier Excel modifié, on peut convertir les fichier csv en retour en passant par le format .gnumeric:
A coups de system("ssconvert ...") et de lexture/modification d'un fichier .csv, on devrait pouvoir faire une solution relativement simple (vu la fréquence à laquelle revient la question, je vais réfléchir à des solution portables permettant de manipuler des fichiers Excel et réunir cela dans un tutoriel)..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ssconvert feuille_excel.csv feuille_excel.gnumeric ssconvert feuille_excel.csv feuille_excel.xls
Gnumeric est disponible sous Windows, sauf erreur de ma part. Il suffit ensuite que l'utilitaire ssconvert soit dans le %PATH%. Ce n'est certainement pas la manière de faire la plus élégante, mais à court terme, il doit être relativement aisé de mettre en place une solution. Sinon, cela n'engage que moi, mais j'utiliserais plutôt Python pour ce genre de scripts, que C.
Pour en savoir plus sur la manipulation des fichiers Excel, je pense que le code source de ssconvert doit être une source intéressante de renseignements, et plus ciblée que Gnumeric dans sa totalité. ssconvert n'est disponible que dans les dernières version du logiciel, et je n'ai pas vérifié que cet utilitaire est disponible sous Windows.
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
ssconvert ne permet que de convertir la feuille courante au format .csv. Si c'est une limitation trop important, on peut convertir feuille_excel.xls en un fichier .gnumeric (ssconvert doit être dans le PATH):
Le format .gnumeric est du xml gzippé, qui devrait être beaucoup plus facile à manipuler que du xls binaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("ssconvert feuille_excel.xls feuille_excel.gnumeric");
[EDIT]
Après j'arrête, c'est promis: une solution en python qui semble intéressant en Python: pyExcelerator (permet de lire et d'écrire dans les feuilles Excel)
http://sourceforge.net/projects/pyexcelerator/
[/EDIT]
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Bonjour,
J'essaye de lire et comprendre chaque post ... mais rien à faire!
Voila, moi j'essaye de faire pareille, c'est à dire je veux créer un logiciel de Gestion qui me permettrait d'indexer une base de données rempli sur Excel ou même open Office....
Mais, je n'est aucune idée du cheminement pour essayer de trouver le code que je dois mettre!
Je n'arrives pas à décoder les liens ...à savoir qu'est ce qui est bon ou ne l'est pas!
J'utilises Dev c++ ....
J'arrive enfin à ouvrir un fichier Excel et word!
Mais alors, je suis toujours bloqué pour essayer d'importer les données d'un fichier Excel...
Partager