Copier/Coller Excel Dans C#

Résolu
AkramIng Messages postés 12 Date d'inscription lundi 16 juin 2014 Statut Membre Dernière intervention 23 juillet 2014 - Modifié par jordane45 le 16/06/2014 à 15:23
jordane45 Messages postés 38189 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 - 25 juin 2014 à 11:20
Svp, j'ai voulu de copier un onglet (worksheet) d'une feuille excel X vers un autre onglet d'un autre fichier excel y existant.
J'ai utilisé la méthode "Copy" du namespace "Microsoft.Office.Interop.Excel"
mais ça marche pas ("Copy" fonctionne que pour une copie dans le même fichier Excel) .
si vous connaissez comment faire, merci de m'aider.
le code utilisé est :
public void Lecture_fond()
        {
          Application xl = new Application();
            Workbook workbook = xl.Workbooks.Open(Chemin_fond_input);
            Worksheet ws = (Worksheet)workbook.Sheets["_FVAGIPI 1213"];
            Workbook workbook1 = xl.Workbooks.Open(Chemin_modgap_input);
            Worksheet ws1 = (Worksheet)workbook1.Sheets["Fonds"];
            ws.Copy(ws1, Type.Missing);
 
}

2 réponses

jordane45 Messages postés 38189 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 344
16 juin 2014 à 17:35
Bonjour,

La méthode copy fonctionne vers un autre classeur...

En VBA elle s'écrit:
Workbooks("monClasseur1.xlsx").Sheets("Feuil1").Copy Before:=Workbooks("monAutreClasseur.xlsx").Sheets(1)

http://msdn.microsoft.com/fr-fr/library/microsoft.office.tools.excel.worksheet.copy.aspx


ce qui, en C# devrait ressembler à un truc du genre :

public void Lecture_fond()
        {
          Application xl = new Application();
            Workbook wbk1= xl.Workbooks.Open(Chemin_fond_input);
            Worksheet ws1 = (Worksheet)wbk1.Sheets["_FVAGIPI 1213"];
            Workbook wbk2= xl.Workbooks.Open(Chemin_modgap_input);
            Worksheet ws2 = (Worksheet)wbk2.Sheets["Fonds"];
            ws1.Copy(wbk2.ws2 , Missing.Value);
 
}



0
Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 mai 2024 656
17 juin 2014 à 09:43
Bonjour, je confirme le code de Jordoane.

Cependant, aller savoir pourquoi, il existe deux insterfaces pour les classeurs (Workbook et _Workbook) et deux pour les feuilles (Worksheet et _Worksheet).
J'ai constaté par le passé que mes codes fonctionnent mieux avec les interfaces commençant par les _
0
AkramIng Messages postés 12 Date d'inscription lundi 16 juin 2014 Statut Membre Dernière intervention 23 juillet 2014
25 juin 2014 à 11:17
Problème résolu.

Merci
0
jordane45 Messages postés 38189 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 344
25 juin 2014 à 11:20
Bonjour,
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
Rejoignez-nous