crée un programme en c qui traite des données d'un fichier excel

  • Auteur de la discussion anfal nada
  • Date de début

anfal nada

Nouveau membre
j'ai besoin de votre aide SVP ..... :)
j veux créer un programme en langage c qui traite les données d'un fichier excel ...........................
Comment je dois le faire :o
Merci
 

archipeldufond

Grand Maître
Salut,

tu peux exporter ton fichier exel en csv (ou cvs?) ce qui te permettra d'avoir un fichier sous forme :

champ1;champ2;champ3;champ4
champ1;champ2;champ3;champ4
champ1;champ2;champ3;champ4
etc..

Une fois que c'est fait il te reste à parcourir le fichier pour récupérer chaque champ dans une variable.
 

KyrO_82

Grand Maître
Je doute que tu trouve une librairie en C pour manipuler un fichier excel, ça va être à toi de le parser.

Pourquoi vouloir utiliser le C? Pourquoi ne pas utiliser un langage de plus haut niveau?
 

zeb

Modérateur
Salut,

Quel est ton compilateur C ?
Sinon, solution triviale, si tu ne cherches qu'à exploiter les données (le fond, pas la forme) : ODBC 8)
 

anfal nada

Nouveau membre
j'ai convertis le fichier,,, ms les variables que j'ai dans mon fichier sont de type différents, chaque ligne du fichier contient :
temps : 02:30, 12:25......
jour de voyage 1, 2 ....
le numéros de vol : 125, 1236 ....
quel type de variable j paux utiliser pour récupérer ces variable dans une matrice, :??:
:??:
Merci
 

KyrO_82

Grand Maître
En chaîne de caractères (texte).
Tu peux presque toujours travailler en chaîne de caractères, comme sur internet, seule les grosses données (fichiers) ne sont pas transmis sous forme de texte.
D'ailleurs, ton fichier converti, c'est du texte également.
Mais d'après ton exemple, tu pourrais aussi travailler avec des nombres entiers (integer), faudra juste convertir tes temps en nombres entiers (en convertissant les heures:minutes en minute par exemple).
Mais si tu ne dois pas modifier/travailler ces données (additionner les temps par exemple) je te conseilles de rester en texte.
 

anfal nada

Nouveau membre
J'utilise le code block s 13.12
quel est le max de la taille d'un matrice, j'ai arrivé jusqu'au r[1400][1400] ..... :pfff:
j'ai beucoup de ligne à récupérer ....
j c pas koi faire??????
esq j dois utiliser un compilateur plus puissant!!! quel est le meilleur???
Merciiiiiiiiiiiiii
;)
 

anfal nada

Nouveau membre
Voici un exemple :
7986;;06:25;07:30;1;00:55
;;08:25;11:00;1;01:10
;;12:10;14:30;1;17:45]
;;08:15;10:20;2;01:10
;;11:30;13:40;2;00:50
voici le programme :
#include<stdio.h>
int main(void)
{
int i,j,n=150,m=150;
char r[150][150];
FILE *ft;
ft=fopen("routes.txt", "rt");
if (ft != NULL)
{
{
for(i=0;i<n;i++)
{
for(j=0;i<m;i++)
{
fscanf(ft,"%s",&r[j]);
printf(" %s " ,r[j]);
}
printf("\n");
}
}
printf("\n");
printf(" le r[1][1] = %c",r[4][0]);
}
else
{
printf("le fichier non ouvert");
}

return (0);
}


le problème est qu'il lit caractère par caractère, comment il lit la valeur du champ complet??? SVP
 

KyrO_82

Grand Maître
Moi et le C :/

Pour lire le champ complet, c'est à toi de gérer la lecture des caractères qui sont entre les points-virgules.
A chaque caractère, tu regarde si c'est un ; et si oui tu retournes tous les caractères lu avant.
 

anfal nada

Nouveau membre
je doit introduire des condition avec if ????
esq vous conaissez un autre langage pour calculer pour chaque ligne la différence entre (2 eme champs et 3 eme), ajouter des heures pour les champs 2 et 3?????
 

KyrO_82

Grand Maître
Oui avec des if. Ou alors avec une bibliothèque qui sait faire ça.

Tu peux faire avec n'importe quel langage. C'est dans quel but ce programme? Destiné à être utilisé où et par qui?
 

anfal nada

Nouveau membre
c'est por mon projet fin d'études, et c'est le juste le début ;) ,
 

zeb

Modérateur
Plop,

Le code se présence sur ce site avec l'aide de la balise
Code:
.
C'est impératif.

-------------------------------

Ce problème est un projet fin d'études ?
M'enfin, c'est du B-A-BA !

Lire une ligne (dans un gros buffer char[MAX_LINE_SIZE])
Isoler chaque valeur séparée d'une autre par un point-virgule (strchr ou boucle for) dans un petit buffer char[MAX_VALUE_SIZE].
Identifier le type de la donnée.
La traiter (stocke, calcul, etc..).

A ton niveau tous les compilateurs C se valent. :o
En revanche, l'éditeur intégré qui va autour peut être plus ou moins agréable. :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 121
Membres
1 586 398
Dernier membre
mookie767
Partager cette page
Haut