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

C Discussion :

Enregistrer un fichier *.xls


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut Enregistrer un fichier *.xls
    Bonjour a tous,

    J'aimerais savoir s'il est possible en langace C d'enregistrer des données dans un fichier Excel. J'aimerais juste écrire un nombre à l'aide d'un programme dans la première cellule d'un fichier Excel.

    J'ai en effet utilisé le code suivant qui enregistre des données dans un fichier texte. On peut cependant nommer le fichier avec une extension *.xls mais Excel ne le reconnait pas comme un fichier Excel mais comme un fichier texte et demande de le réenregistrer sous un autre nom dans un format Excel, un vrai cette fois ci.

    Voici le code utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <stdio.h>
    #define A 128
     
    int main() 
    { 
    	FILE * fp;
    	char str[A];
    	printf("Fichier ou mettre les resultats ?\n");
    	scanf("%s", str);
    	fp = fopen(str,"w");
    	if (!fp)
    	{
    		fprintf(stderr,"Erreur d'ouverture de fichier\n"); 
    		exit(-1);
    	} 
    	fprintf(fp,"78\n");
    	fclose(fp);
    	system("PAUSE");
    	return(0);
    }
    J'espere que je suis assez compréhensible et j'attends patiemment vos suggestions

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par klutch
    J'aimerais savoir s'il est possible en langace C d'enregistrer des données dans un fichier Excel. J'aimerais juste écrire un nombre à l'aide d'un programme dans la première cellule d'un fichier Excel.
    Excel est un logiciel propriétaire. Je ne suis pas sûr que le format de ses fichiers soit officiellement publié.

    Par contre, comme tout tableur, Excel sait lire des données à partir d'un fichier CSV, qui est un bête fichier texte correctement formaté.

    Détails dans la doc de Excel, par exemple.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Qu'est-ce qu'un fichier CSV ? Dans mon cas, Excel ne peut récupérer les informations de ce fichier texte meme si celui-ci possède l'extension *.xls

    J'ai essayé en utilisant la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[nomdufichier]nomdufichier!A6
    sur la cellule voulue mais Excel refuse de faire le lien avec le bon fichier...

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par klutch
    Qu'est-ce qu'un fichier CSV ? Dans mon cas, Excel ne peut récupérer les informations de ce fichier texte meme si celui-ci possède l'extension *.xls
    Comme je te l'ai dit, le détail est dans la doc de Excel. je n'en sais pas plus.

    Le format CSV général est décrit ici : http://www.wotsit.org

    En gros, il y une ligne de texte par ligne de tableur, et les colonnes sont séparées par des ',' (comma), des ';' (semicolon) ou des TAB.

    L'extension doit être différente de .xls, (par exemple : .txt ou .csv) et il faut probablement faire 'importer'.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Merci pour ces informations, j'aurais aimé faire une procédure totalement automatique, je pense alors que le seul moyen de le faire est d'utiliser le langage VBA d'Excel. C'est pour éviter son apprentissage que j'ai voulu utiliser le language C.

    Je vais continuer à chercher, et à défaut de trouver, je me mettrais au VBA...

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par klutch
    Merci pour ces informations, j'aurais aimé faire une procédure totalement automatique, je pense alors que le seul moyen de le faire est d'utiliser le langage VBA d'Excel. C'est pour éviter son apprentissage que j'ai voulu utiliser le language C.

    Je vais continuer à chercher, et à défaut de trouver, je me mettrais au VBA...
    Essaye quand même de lancer Excel avec le fichier csv en parametre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       system ("excel.exe monfichier.csv");
    ça marche peut être... Je ne connais pas Excel (je suis plus 'OpenOffice...)

  7. #7
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Pour les technologies MS, il est toujours possible de passer par un objet COM.

    Pour Excel, le truc est de générer un fichier (extension .xls) avec du contenu HTML.

    !! Surprenant mais ça fonctionne !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <html xmlns:o="urn:schemas-microsoft-com:office:office"
          xmlns:x="urn:schemas-microsoft-com:office:excel"
          xmlns="http://www.w3.org/TR/REC-html40">
      <head>
        <title>TEST Excel</title>
      </head>
      <body>
        <table border="1" cellspacing="0">
          <thead>
            <tr colspan="3"><td>Titel</td></tr>
            <tr>
              <th width="200"><div style="font-weight:bold">Date</div></th>
              <th width="200"><div style="font-weight:bold">Nombre</div></th>
              <th width="200"><div style="font-weight:bold">Donnée</div></th>
            </tr>
          </thead>
          <tbody>
            <tr align="left">
                <td>1900/01/01</td>
                <td>380419</td>
                <td>Bla bla</td>
            </tr>
          </tbody>
        </table>
      </body>
    </html>

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut Merci
    Passer par du HTML ne marche pas pour mon application, ou alors je ne maitrise pas assez bien pour savoir exactement ce que je dois faire...

    Je vous remercie en tout cas pour ces infos, pour ma part, j'ai fait le choix de me mettre au Visual Basic... C'est finalement pas si compliqué que ca et c'est très efficace pour mon application. Au lieu de générer des données dans un fichier texte et de les importer par Excel, je les génère directement à partir d'Excel, via VBA.

    Merci de votre rapidité dans les réponse et à bientot

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 59
    Par défaut
    Ben il y a toujours moyen de faire ca, si tu t'y interresse.
    Meme si le format xls n'est pas publié officiellement (ce qui cree parfois des problemes de compatibilité avec des tableur comme OO), une partie de la structure est connue.

    Tu peux jeter un coup d'oeil ici si ca t'interresse: http://www.wotsit.org/

    ou directement sur le format xls: http://www.wotsit.org/download.asp?f=excel&sc=237630149

    Si tu n'as pas le temps, il y a des librairies gratuites (comme http://sourceforge.net/projects/xlslib/, je n'ai pas testé c'est peut-etre un projet vide, mais y'en a plusieurs sur sourceforge) qui te permettent des operations simples (tel que ecriture dans cellules)

    Et si tu as encore moins de temps, la solution est d'utiliser les OLE, mais cela necessite d'avoir Excel sur ton PC.


    -----
    @jowo > c'est pas si surprenant que ca pour les HTML, ca permet de pouvoir reouvrir avec excel un html generé par celui-ci.

  10. #10
    Membre très actif Avatar de clampin
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 96
    Par défaut
    Citation Envoyé par yorke
    Tu peux jeter un coup d'oeil ici si ca t'interresse: http://www.wotsit.org/

    ou directement sur le format xls: http://www.wotsit.org/download.asp?f=excel&sc=237630149
    Merci pour l'info.... j'étais justement à la recherche d'un site pareil....

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par clampin
    Merci pour l'info.... j'étais justement à la recherche d'un site pareil....
    Je te l'avais pourtant indiqué tout de suite :

    http://www.developpez.net/forums/sho...71&postcount=4

    ... on se demande parfois si on ne parle pas aux murs...

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

Discussions similaires

  1. [AC-2003] Enregistrer un fichier xls depuis vba access2003
    Par leonor dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/06/2010, 21h06
  2. Enregistrer un fichier XLS en CSV
    Par Bloodscalp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2006, 12h51
  3. faire 2 enregistrements de fichiers xls
    Par lefilsacc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/11/2006, 20h40
  4. Enregistrer fichier xls - pilotage depuis access
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 15/11/2005, 15h15
  5. Enregistrer fichier .xls sans macro ni code vb
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/11/2005, 18h48

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