Rechercher : dans
Par :

[C#] Ecrire dans Excel

Dernière réponse le 18 nov 2009 à 14:03:14 halo_quebec, le 5 jan 2009 à 16:44:17 
 Signaler ce message aux modérateurs

Bonjour,
voila ma question est simple, du moins je crois,

j'utilise visual studios 2008 et j'ai besoin de faire un log dans un fichier excel et je me demande comment faire pour ecrire dans un fichier excel avec c#

je n'ai pas besoin de faire de graphique ou de macro, rien de complexe juste ecrire dans les cellules

sa fait 2 semaine que je chercher sur internet et j'ai toujours rien trouver

merci de votre aide

bonne journee/ soiree

Configuration: Windows Vista
Opera 9.52
Visual Studios 2008

Meilleures réponses pour « [C#] Ecrire dans Excel » dans :
Entrées/sorties : Les flux en C++ VoirEntrées/sorties : les flux en C++ 1. Ouvrir un fichier en lecture 1.1 Ouverture du fichier "donnees.txt" en lecture 1.2 Lecture du contenu de "donnees.txt" 2. Ouvrir un fichier en écriture 2.1 Ouverture du fichier "donnees.txt" en...
Fond d’écran de Noël VoirPour illustrer la magie du moment - la magie de Noël - personnalisez votre ordinateur ou votre téléphone portable avec un fond d’écran de Noël ! Un fond d’écran de Noël pour votre ordinateur Choisir un fond d’écran de Noël Composer votre...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Télécharger NetBeans IDE 6.1 VoirNetBeans IDE 6.1 est un excellent IDE de développement C/C++ écrit entièrement en Java. La coloration syntaxique, le "Code Completion" et plein d'autres options font naturellement parti de NetBeans. Un des principal atout de NetBeans est qu'il...
Caractéristiques du langage C VoirLe fichier source Le fichier source d'un programme écrit en langage C est un simple fichier texte dont l'extension est par convention .c. Note d'un visiteur (J.Grondin) : L'extension est en minuscules. Le .C (majuscule) est interprété par...
Représentation des nombres entiers et réels VoirReprésentation d'un nombre dans un ordinateur On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme binaire. La représentation des nombres sur un ordinateur est indispensable pour que celui-ci...
Les fonctions de l'API Socket VoirLes fonctions des sockets en détail La fonction socket() La création d'un socket se fait grâce à la fonction socket() : int socket(famille,type,protocole) famille représente la famille de protocole utilisé (AF_INET pour TCP/IP utilisant une...

1

scriptiz, le 5 jan 2009 à 17:05:15

Tu écrit de façon séquentielle dans un fichier texte dont tu met comme extension .csv
Et tu sépare les valeurs par des point-virgule ( ; ).

Exemple de contenu d'un fichier csv :

"4";"2";"y";;"2";"10";
"5";"2";"y";;"2";"10";
"6";"2";"n";"IRIDIA";"3";"80";
"7";"4";"y";;"1";"1";
"2";"6";"y";;"1";"100";
"3";"28";"y";;"1";"100";
"11";"57";"y";;"1";"100";
"8";"110";"y";;"1";"50";
"9";"110";"y";;"3";"50";
"1";"121";"y";;"1";"100";


Tu l'aura deviné, chaque ligne représente une ligne sur excel, et chaque valeur une cellule.

Pour faire des sauts de lignes tu écris ceci dans ton fichier .csv à partir de ton programme en C# : \n

Si tu as besoin d'aide sur la façon de manipuler des fichiers séquentiels n'hésite pas, sinon voici la piste : StreamWriter.

Bonne chance.

Répondre à scriptiz

2

halo_quebec, le 5 jan 2009 à 17:08:41

Tout d'abord merci d'avoir repondu rapidement:)

deuxiemement je me demandait si c'est possible d'avoir des workbook

Répondre à halo_quebec

3

scriptiz, le 5 jan 2009 à 17:49:46

Qu'est-ce qu'un Workbook? :D

Répondre à scriptiz

4

halo_quebec, le 5 jan 2009 à 17:53:58

Hmm je crois que en francais c'est un classeur, en gros c'est un contenant de excel avec plusieurs feuille de travail (Worksheet)
et est-ce que c possible aussi de mettre des cellule en Gras?

Répondre à halo_quebec

5

scriptiz, le 5 jan 2009 à 18:05:44

Malheureusement avec la méthode que je t'ai énoncé tu ne peux créer de classeurs comportant plusieurs feuilles ni stylé tes cellules.

Maintenant il existe peut-être une lib qui te permette d'écrire un fichier Excel :)

Répondre à scriptiz

6

halo_quebec, le 5 jan 2009 à 18:08:29

La question est la connait-tu et sais-tu comment elle marche?

si oui merci de me le dire:P
sinon Merci beaucoup pour ton aide

Bonne journee/soiree

Répondre à halo_quebec

7

scriptiz, le 5 jan 2009 à 18:21:29
  • +1

En fait tu as tout intérêt à créer ton fichier Excel en XML.

Voici à quoi ressemble le contenu du fichier qui portera l'extension .xml et qui s'ouvrira avec Excel, le mieux, c'est de l'écrire donc avec ton programme dans le fichier .xml que tu crée, et de changer les parties que tu dois changer.

Ici moi j'ai utilisé 9 cellule de cette façon :

Colonne 1 | Colonne 2 | Colonne 3
Nom 1     | Prenom 1  | Age 1
Nom 2     | Prenom 2  | Age 2


Tu peux grâce à celà mettre de style dans ta feuille (ici les titres des colonnes en gras), ou alors faire plusieurs "Workbook" comme tu dit :)

Du côté d'une library qui te permette de manipuler un fichier Excel directement je n'ai rien trouvé.

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>Scriptiz</Author>
  <LastAuthor>Scriptiz</LastAuthor>
  <Created>2009-01-05T17:14:29Z</Created>
  <Version>12.00</Version>
 </DocumentProperties>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>8520</WindowHeight>
  <WindowWidth>18720</WindowWidth>
  <WindowTopX>240</WindowTopX>
  <WindowTopY>105</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s62">
   <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
    ss:Bold="1"/>
  </Style>
 </Styles>
 <Worksheet ss:Name="Feuil1">
  <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="3" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
   <Row>
    <Cell ss:StyleID="s62"><Data ss:Type="String">Colonne 1</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="String">Colonne 2</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="String">Colonne 3</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">Nom 1</Data></Cell>
    <Cell><Data ss:Type="String">Prenom 1</Data></Cell>
    <Cell><Data ss:Type="String">Age 1</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">Nom 2</Data></Cell>
    <Cell><Data ss:Type="String">Prenom 2</Data></Cell>
    <Cell><Data ss:Type="String">Age 2</Data></Cell>
   </Row>
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <Print>
    <ValidPrinterInfo/>
    <PaperSizeIndex>0</PaperSizeIndex>
    <HorizontalResolution>600</HorizontalResolution>
    <VerticalResolution>600</VerticalResolution>
   </Print>
   <Selected/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveRow>2</ActiveRow>
     <ActiveCol>2</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
 <Worksheet ss:Name="Feuil2">
  <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
 <Worksheet ss:Name="Feuil3">
  <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="60" ss:DefaultRowHeight="15">
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
</Workbook>

Répondre à scriptiz

8

scriptiz, le 5 jan 2009 à 18:25:02

Waouh j'ai trouvé un truc super sympa qui va t'aider :

http://www.winnovative-software.com/excel-library.aspx

Il s'agit d'une libraire qui te permet de manipuler des fichiers Excel 97/2003 ou 2007 à ta guise apparament, je n'y a pas porté plus d'attention mais la démo est convaincante et ça semble être assez complet.

Je te conseille donc cette solution, n'oublie pas d'ajouter la référence à ton projet afin de pouvoir en utiliser les méthodes/classes existantes dans la library.

Répondre à scriptiz

9

scriptiz, le 5 jan 2009 à 18:38:47

Voici tant que j'y suis un petit exemple de manipulation assez complet d'un classeur (ajout de feuille, ...) :

http://users.skynet.be/cadenza/excel_sample.txt

Répondre à scriptiz

10

halo_quebec, le 5 jan 2009 à 19:23:54

Merci beaucoup pour ton aide :D

Répondre à halo_quebec

11

scriptiz, le 5 jan 2009 à 22:26:43

Le plaisir est partagé, grâce à toi j'ai découvert cette library que je trouve très utile =)

Répondre à scriptiz

12

 Akkai, le 18 nov 2009 à 14:03:14

Moi j'ai un petit problème avec ta librairie, Si j'ai trop de ligne au bout d'un moment il me fais une erreur sur la gestion des bordures. il refuse de rajouter un bordure avec une erreur sur le numero de format des style de lignes alors que j'utilise celle fourni par la dll.

Répondre à Akkai