[C#] Ecrire dans Excel

Résolu/Fermé
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 - 5 janv. 2009 à 16:44
 Akkai - 18 nov. 2009 à 14:03
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
A voir également:

11 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 17:05
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.
3
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 18:21
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>
3
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 18:38
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
1
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
5 janv. 2009 à 17:08
tout d'abord merci d'avoir repondu rapidement:)

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 17:49
Qu'est-ce qu'un Workbook? :D
0
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
5 janv. 2009 à 17:53
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?
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 18:05
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 :)
0
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
5 janv. 2009 à 18:08
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
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 18:25
Waouh j'ai trouvé un truc super sympa qui va t'aider :

https://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.
0
halo_quebec Messages postés 161 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 9 juin 2010 10
5 janv. 2009 à 19:23
merci beaucoup pour ton aide :D
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
5 janv. 2009 à 22:26
Le plaisir est partagé, grâce à toi j'ai découvert cette library que je trouve très utile =)
0
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.
0