Enregistrer des donnees dans un fichier excel

Résolu
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009 - 28 févr. 2006 à 22:33
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009 - 1 mars 2006 à 17:11
Bonjour, je doit realiser un programme qui recupere des info d'une carte d'aquisition et les stock dans un fichier en vu d'un post traitement. Je travail sous Visual studio 2003.Net. Mon programme est une windows form (pas une console).
Je possede deja la bibliotheque me permeattant d'acceder a toutes les donnees qui arrive sur ma carte d'aqui, mais je cherche mainteant a stocker ces donnes dans un fichier excel.
En fait j'ai deja realiser un simple petit programme me permattant de valider le fonctionnement des fonctions de ma bibliotheque. Ce programme etait en mode console et enregistrait des donnees determiner dans le code(l'utilisateur ne pouvait pas choisir) dans un fichier txt. Ainsi, les donnees etant chronologique chaque ligne correspondait a l'ensemble des donnes d'un temps t.
Je souhaite maintenant passer dans un fichier excle pour plusieur raison:

1)L'utilisateur doit pouvoir choisir les donnees qu'il enregistre. Hors comme c'est donnees sont clasees dans un ordre chronologique, il est preferable que toute les donnes concernant un temps t soit sur la meme ligne (pour des raisons de lisibilite). Par consequent il me semble preferable de passer en mode tableau. Ainsi chaque ligne coresondra a un temps t et chaque colonne a un type de donner a ce temps t. (il est toute fois imaginable d'initialiser les donnes non choisit par l'utilisateur a 0 et de les enragister mais je ne souhaite pas avoir rewcour a cette solution)

2)Ces donnes doivent ensuite subir un post traitement et entre aute, je doit tracer des courbes. Il me semble par consequent plus facile de faire ca a l'aide d'excel (quitte a realiser les actions permattant de tracer les courbes de facon manuelle)

Par contre le nombre de ligne etant important il est fort propable que j'arrive en butee sur excel (je doit pouvoir enregister environ 2 millions de ligne). Existe t'il une autre forme de tableau pour les stocker? (quitte a les redecouper apres pour les faire rentre sous excel)

Voila je vous remercie de vos reponse et/ou remarques. Toutes les remarques constructives seront prise en compte

1 réponse

julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
1 mars 2006 à 17:11
Bon alors voila apres avoir chercher pendant pre d'une journee je me suis resigne a tester une chose de tres simple. En fait je suis parti du principe qu'il est possible de lire un fichier .txt a l'aide d'excel a condition que ces donnees soit disposes en colonnes. J'ai donc nomme mon fichier (que j'aouvre avec fopen et dans lequel j'ecrit avec fprintf) comme ceci fichier.xls. Puis j'ai chercher le moyen de changer de colonne, En fait il faut utiliser une tabulation, et pour changer de ligne le classigne \n. Ainsi il est possible de remplir sont tableau cellule par cellule et une ligne apres une autre. exemple: ke remplit 1A puis 1B, je change de ligne je remplit 2A puis 2B ect...
voici un exemple de programme qui remplit un tableau de 200 lignes avec le nuemro du point et le temps a laquel il a ete creer (un chrono koi)


-------------------------------------------------------------------------------
#include <stdio.h>
#include <time.h>
#include
using namespace std;


int cpt;
clock_t start, elapsed;
double elapsed_time;
FILE * fic;


int main(void)
{
fic = fopen("fichier.xls", "w+"); // ouverture du fichier en ecriture
start = clock(); // debut du chrono

fprintf (fic,"Num point TIME \n"); // ecriture des entete de colonne

for (cpt=0;cpt<200;cpt++)
{
elapsed = clock()- start; // prise du temps du point
elapsed_time = elapsed; // calcul du temps
printf("NUM = %i \n",cpt); // aff a l'ecran des points creer
fprintf (fic,"%i ",cpt); // enr. du num du pt ds 1 col.
fprintf (fic,"%f ",elapsed_time); // enr. du tps ds 2 col.
fprintf (fic,"\n"); // chgt de ligne
}

fclose(fic); // fermeture du fichier
cout << "\nEcriture points terminee";
cout << "\n\nAppuyer enter pour quitter";
cin.ignore();
return 0;
}

Mon probleme mainteant est de changer de feuille excel une fois les 65535 lignes remplit mais ca je penses pouvoir y arriver au pire en cerant un nouveau fichier
3
Rejoignez-nous