C# et EXCEL

polop Messages postés 9 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 24 juin 2006 - 12 sept. 2003 à 09:28
Tramb72 Messages postés 2 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 12 août 2005 - 12 août 2005 à 09:37
Bonjour,

j'ai un soucis avec Excel et C#.
j'ai trouvé divers bout de code pour lire un classeur excel avec .NET(C#) mais mon classeur ne veut pas se mettre à jour (le goujat !)

Excel._Application xlApp;
Excel._Workbook xlClasseur;
Excel._Worksheet xlFeuil1;
Excel.Sheets xlFeuilles ;

string fileName = @"D:\TestCSharpExcel.xls";

xlApp = new Excel.Application();
xlApp.Visible = true;

xlClasseur = xlApp.Workbooks.Open(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value );

xlFeuilles = xlClasseur.Sheets ;
xlFeuil1 = (Excel._Worksheet)xlFeuilles["Feuil1"];
Excel.Range r = xlFeuil1.get_Range ("A1",Missing.Value );
object cell = (object)r.Cells.Value ;
string val1 = (string)cell;
cell = "G";
string val2 = (string)cell;

xlClasseur.Save();
xlClasseur.Close (false, Missing.Value, Missing.Value );
xlApp.Quit();

Console.WriteLine("Fin {0} puis {1}",val1,val2);

A l'écran je constate que la cellule a changé mais quand j'ouvre mon classeur, la cellule a toujours l'ancienne valeur !
que passa ?

Merci d'avance.

13 réponses

gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
12 sept. 2003 à 12:20
-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
>
> j'ai un soucis avec Excel et C#.
> j'ai trouvé divers bout de code pour lire un classeur excel avec .NET(C#) mais mon classeur ne veut pas se mettre à jour (le goujat !)
>
> Excel._Application xlApp;
> Excel._Workbook xlClasseur;
> Excel._Worksheet xlFeuil1;
> Excel.Sheets xlFeuilles ;
>
> string fileName = @"D:\TestCSharpExcel.xls";
>
> xlApp = new Excel.Application();
> xlApp.Visible = true;
>
> xlClasseur = xlApp.Workbooks.Open(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value );
>
> xlFeuilles = xlClasseur.Sheets ;
> xlFeuil1 = (Excel._Worksheet)xlFeuilles["Feuil1"];
> Excel.Range r = xlFeuil1.get_Range ("A1",Missing.Value );
> object cell = (object)r.Cells.Value ;
> string val1 = (string)cell;
> cell = "G";
> string val2 = (string)cell;
>
> xlClasseur.Save();
> xlClasseur.Close (false, Missing.Value, Missing.Value );
> xlApp.Quit();
>
> Console.WriteLine("Fin {0} puis {1}",val1,val2);
>
> A l'écran je constate que la cellule a changé mais quand j'ouvre mon classeur, la cellule a toujours l'ancienne valeur !
> que passa ?
>
> Merci d'avance.
0
gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
12 sept. 2003 à 12:20
c koi Missing ? tu trouve ou cette classe ?
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
12 sept. 2003 à 15:29
Hello,
Pour gg00xiv,
Missing est une classe se trouvant dans System.Reflection. Missing.Value permet de mettre l'équivalent de null dans des objet qui n'aime pas les les objets null(comme p.ex. des application excel ou word).
Pour Popol, essaye comme ceci :
string val1= (string)r.Cells.Value;
r.Cells.Value="G";
string val1= (string)r.Cells.Value;

Amicalement SharpMao
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
12 sept. 2003 à 15:31
Excuse-moi, la à la troisième ligne, il faut lire
string val2=...

Amicalement SharpMao
0

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

Posez votre question
JCRen Messages postés 5 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 1 mars 2005
17 févr. 2004 à 15:32
Bonjour a tous, je suis occuper à essayer de comprendre comment exporter dans un fichier XLS, des données qui viennent du DB.

Mais avant d'aller si loin j'aimerais pouvoir ouvrir un fichier, avoir acces au champs en rapport avec des fichier xls.

Donc si vous pouviez m'éclairer et me dire comment je peux ne fusque taper une ligne comme celle ci : Excel._Application xlApp;
sans que le compilateur ne gueule parce qu'il ne connait pas "Excel".

J'ai deja ete dans les préférences et dans l'onglet COM rajouter le miscrosoft excel 11.0 ou quelque chose dans le genre.

Merci d'avance.

++ JCR ++ :sad)
0
cs_Dadie Messages postés 4 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 26 mai 2004
3 mai 2004 à 16:06
bonjour

j'aimerai aussi savoir qu'est-ce qui faut faire en amont du code pour pouvoir creer une apllication excel.

merci

Dadie
0
pierodactil Messages postés 10 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 1 février 2008
21 juil. 2004 à 14:37
Moi c'est un peu pareil,
j'ai fait touut bien comme il faut (je crois), pas d'erreur a la compilation, mais des que j'execute le truc, j'ai tout le temps une erreur de acces refusé.
A mon avis c'est pas grand chose, mais ca me fait bien gallerer
Ca viendrais pas de VS-2003 par hasard ?
Si qqn a eu le meme Pb, je suis tout ouie
0
Sensei01 Messages postés 94 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 27 juin 2006
1 avril 2005 à 15:42
Sensei01

Slt,

j'ai moi aussi des pb pour ouvrir Excel.
J'ai bien montée une référence à excel de mamière a ce que le compilateur reconnaisse les classes Excel._ ...
cependant lorsque je fais :

Excel._Application xlapp = new Excel._Application();

il me sort une erreur en me disant :

Impossible de créer un nouvel objet de type 'Excel._Application', car il s'agit d'une interface

si quelqu'un pouvais m'aider ce serai cool

Merci

PS : je sais très bien le faire un VB, si ca interresse qq'un ...
0
Anormal13 Messages postés 24 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 février 2006
5 juil. 2005 à 12:21
Moi perso ton code en Vb m'interesse sinon pour ton probleme la structure de ton code pour ouvrir l'appli Excel c'est :
//Déclaration objet
object Missing = System.Reflection.Missing.Value;
//ton path
string fileName = "C:/test.xls";

Excel._Application xlApp; //appli
Excel._Workbook xlClasseur; //classeur
Excel._Worksheet xlFeuill1; //feuille

xlApp = new Excel.Application(); //Appli
xlApp.Visible = false; //soit disant ne pas faire apparaitre la feuille
//Ouverture classeur
xlClasseur = xlApp.Workbooks.Open(fileName,
Missing,Missing,Missing, Missing, Missing, Missing, Missing,Missing,
Missing, Missing,Missing,Missing,Missing,Missing);
//feuille
Excel.Sheets xlFeuilles = xlClasseur.Sheets;
xlFeuill1 = (Excel._Worksheet)xlFeuilles["Feuil1"];

...Instruction...

// Enregistre les modifs des cellules
xlClasseur.Save();
// ferme le XLS
xlClasseur.Close(false, Missing, Missing) ;
// On met fin au pilotage
xlApp.Quit() ;
0
ZeBFroG Messages postés 18 Date d'inscription mercredi 4 juin 2003 Statut Membre Dernière intervention 16 juillet 2006
21 juil. 2005 à 06:39
Bonjour à tous,

J'ai une petite question par rapport à ça!
Comment je fait pour générer un nouveau fichier?
je ne veut pas ouvrir un fichier déja existant.

Merci d'avance pour vos réponses.

ZeBFroFG
0
Anormal13 Messages postés 24 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 février 2006
22 juil. 2005 à 10:55
ExcelApplication excel = new ExcelApplication();
excel.Visible = true;

excel.Workbooks.Add(Missing.Value);
Worksheet worksheet = (Worksheet) excel.ActiveSheet;

Range r = worksheet.get_Range("C6", Missing.Value);
r.Value2 = "Hello";
r.Interior.ColorIndex = 6;

worksheet.SaveAs(@"c:\ExcelExample.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

excel.Quit();
0
polshu Messages postés 1 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
29 juil. 2005 à 17:25
hola amigos de la television hola amigos de la
television hola amigos de la television hola amigos de la television
hola amigos de la television hola amigos de la television hola amigos
de la television hola amigos de la television

hola amigos de la televisionhola amigos de la televisionhola amigos de
la television hola amigos de la television hola amigos de la television
hola amigos de la television hola amigos de la television hola amigos de la television



hola amigos de lhola amigos de la television
0
Tramb72 Messages postés 2 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 12 août 2005
12 août 2005 à 09:37
Bonjour à tous,

J'ai juste une petite question ...
Est ce que quelqu'un sait comment on ouvre un nouveau excel à partir d'un programme serveur ( serveur web ) coder en C# ?
J'ai vu qu'il était possible d'ouvrir une nouvelle instance sur sa propre machine, mais ici je voudrais que le code C# du serveur lance une nouvelle instance d'Excel chez le client ... sur un click par exemple ...
Merci d'avance de votre aide,
Tramb
0
Rejoignez-nous