Récuperer un tableau excel

Récuperer un tableau excel - C#/.NET managed - Programmation

Marsh Posté le 26-08-2009 à 10:22:01    

Bonjour,
 
   je souhaiterait savoir comment on peut récuperer , en C# ,un tableau dans une feuille excel ?
 
Merci par avance.

Reply

Marsh Posté le 26-08-2009 à 10:22:01   

Reply

Marsh Posté le 26-08-2009 à 15:27:22    

Fred82 la réponse que tu m'a fournie semble intéressante mais le problème c'est que je n'arrive pas à compiler le bout de code qui figure sur l'exemple à cause de  la ligne "dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;"
 
En effet l'objet "dgvCells" n'est référencé nulle part avant !

Reply

Marsh Posté le 26-08-2009 à 16:17:05    

Je te confirme que j'avais bien lu tout l'article et copié le code des 4 paragraphes . J'ai également téléchargé la dll et ajouté celle ci à mon projet. Mais ça ne marche pas . Il semble que les méthodes de la ExcelLibrary.dll ne fonctionnent pas toutes correctement :(

Reply

Marsh Posté le 26-08-2009 à 16:45:32    

Ok je ferai pareil.
 
As-tu réussi à ouvrir le fichier excel comme dans le paragraphe 1 ? Il semblerait que la méthode Open() de Workbook n'existe nulle part.

Reply

Marsh Posté le 26-08-2009 à 17:17:31    

Bravo ! C'est effectivement le cas le code de l'exemple n'est pas en phase avec la librairie à télécharger !
 
Saurais-tu comment copier maintenant le contenu de la sheet sur un document word ?

Reply

Marsh Posté le 27-08-2009 à 23:05:51    

Même si c'est un peu en retard, pour les documents Excel j'utilise ExcelPackage qui est pas mal.
 
Exemple de code :
 
Lecture (copié/collé du code d'exemple du site) :

Citation :


using (ExcelPackage xlPackage = new ExcelPackage(existingFile))
{
  // get the first worksheet in the workbook
  ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets[1];
  int iCol = 2;  // the column to read
 
  // output the data in column 2
  for (int iRow = 1; iRow < 6; iRow++)
    Console.WriteLine("Cell({0},{1}).Value={2}", iRow, iCol,  
      worksheet.Cell(iRow, iCol).Value);
 
  // output the formula in row 6
  Console.WriteLine("Cell({0},{1}).Formula={2}", 6, iCol,  
    worksheet.Cell(6, iCol).Formula);
   
} // the using statement calls Dispose() which closes the package.


 
 
Création :

Citation :


using (ExcelPackage xlPackage = new ExcelPackage(newFile, new FileInfo("TonFichier.xlsx" )))
{
  ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Feuil1"];
  worksheet.Cell(5, 4).Value = "TonTexte";
  xlPackage.Save();
}


Message édité par Kormyr le 27-08-2009 à 23:07:25
Reply

Marsh Posté le 28-08-2009 à 10:03:06    

Oui, il ne produit que du 2007 car il se base sur une nouveauté de Microsoft qui est d'utiliser du XML.
Niveau perfs et stabilité, ExcelPackage doit être mieux que les autres je pense.
 
Sur Excel 2003 tu as un add-on qui te permet d'ouvrir les fichiers Excel 2007.
 
Après si tu utilises Excel 2000 je sait pas si c'est possible d'ouvrir du 2007 mais bon, on peut pas tout avoir ^^


Message édité par Kormyr le 28-08-2009 à 10:04:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed