IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

ouvrir un fichier excel et y copier des données


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut ouvrir un fichier excel et y copier des données
    Bonjour,

    Je voudrais pouvoir ouvrir un fichier Excell MonFichier.xls qui se trouve sur mon disque dur.

    Ensuite, je voudrais pouvoir écrire dans certaines cellules de certains onglets et enfin sauver mon fichier Excel.

    Quelqu'un a-t'il déjà fait ? Un exemple ?
    d'avance merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 032
    Points : 5 469
    Points
    5 469
    Par défaut
    Non je n'en ai jamais fait, mais a priori je dirai que le seul moyen est le out of browser trusted.
    Peut être ce lien : http://www.silverlight.net/learn/tut...-introduction/

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Bonjour,

    Je voudrais pouvoir ouvrir un fichier Excell MonFichier.xls qui se trouve sur mon disque dur.

    Ensuite, je voudrais pouvoir écrire dans certaines cellules de certains onglets et enfin sauver mon fichier Excel.

    Quelqu'un a-t'il déjà fait ? Un exemple ?
    d'avance merci.
    Si c'est un fichier Excel xls il faut utiliser l'Automation COM pour ouvrir ton fichier et ecrire dedans, tout ca en etant en mode Trusted (OOB Trusted).

    Ici un petit exemple avec Word
    http://broux.developpez.com/articles...light-4/#L10-2

    Pour Excel fais une recherche Google avec "automation com excel"
    Y'a meme un article sur DVP
    http://skalp.developpez.com/tutoriel...tomationexcel/

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Pour Excel fais une recherche Google avec "automation com excel"
    Y'a meme un article sur DVP
    http://skalp.developpez.com/tutoriel...tomationexcel/
    Exact. Ceci dit, s'il n'y a que des données à modifier/insérer, je préconise plutôt de se connecter en ADO.NET (OleDb) car c'est bien plus performant et ne nécessite pas d'avoir Office installé sur le poste qui exécute l'application.
    Plus d'informations dans la FAQ C# : Comment écrire dans un fichier Excel ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Merci pour vos réponses.

    J'aimerais m'orienter vers Automation Com préconisé par Skyounet et explicité dans la Faq C# par Skalp.

    Je n'arrive pas à faire mon Import (Using) de "Microsoft.Office.Interop.Excel.dll et il m'indique:
    You can't add a reference to Microsoft.Office.Interop.Excel.dll as it was not built against the Silverlight runtime. Silverlight projects will only work with Silverlight assemblies

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Merci pour vos réponses.

    J'aimerais m'orienter vers Automation Com préconisé par Skyounet et explicité dans la Faq C# par Skalp.

    Je n'arrive pas à faire mon Import (Using) de "Microsoft.Office.Interop.Excel.dll et il m'indique:
    Il ne faut rien référencer (si ce n'est Microsoft.CSharp).
    L'automation COM en Silverlight utilise le type dynamic (donc avec 0 Intellisense). Regarde l'exemple dans l'article Silverlight que j'ai donné en lien.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Citation Envoyé par NTIC13 Voir le message
    J'interviens dans ce poste car j'ai à peu prés les même besoins, je souhaite générer un fichier csv et ecrire dedans.
    Puis-je te conseiller une prochaine fois de créer un Post distinct car je pense que la problématique entre nos deux sujets est assez différente. Celà augmentera la lisibilité et l'efficacité des sujets sur le forum.

  8. #8
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Puis-je te conseiller une prochaine fois de créer un Post distinct car je pense que la problématique entre nos deux sujets est assez différente. Celà augmentera la lisibilité et l'efficacité des sujets sur le forum.
    J'ai déplacé les messages dans une nouvelle discussion : [Silverlight] Générer un fichier CSV

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Exact. Ceci dit, s'il n'y a que des données à modifier/insérer, je préconise plutôt de se connecter en ADO.NET (OleDb) car c'est bien plus performant et ne nécessite pas d'avoir Office installé sur le poste qui exécute l'application.
    Plus d'informations dans la FAQ C# : Comment écrire dans un fichier Excel ?
    Dans l'article, il est dit :
    Inclure l'espace de nom : System.Data.OleDb.
    Est-ce que c'est compatible Silverlight ?

    Ou puis-je trouver cette référence ?

  10. #10
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    J'aimerais m'orienter vers Automation Com préconisé par Skyounet et explicité dans la Faq C# par Skalp.
    Je n'arrive pas à faire mon Import (Using) de "Microsoft.Office.Interop.Excel.dll
    Citation Envoyé par Golzinne Voir le message
    Dans l'article, il est dit :
    Inclure l'espace de nom : System.Data.OleDb.
    Ou puis-je trouver cette référence ?
    Tu utilises l'automation COM ou ADO.NET finalement ? Ce ne sont pas les mêmes choses.

    Pour inclure l'espace de nom System.Data.OleDb, il te suffit d'ajouter un using au début de ton fichier :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Data.OleDb;

    Citation Envoyé par Golzinne Voir le message
    Est-ce que c'est compatible Silverlight ?
    J'imagine que oui, mais je ne connais pas toutes les spéficités de Silverlight. Je laisse les experts Silverlight te répondre.

  11. #11
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Dans l'article, il est dit :


    Est-ce que c'est compatible Silverlight ?

    Ou puis-je trouver cette référence ?
    Je repete encore une fois : il ne faut rien référencer, il n'y a pas de namespace à utiliser. Tu instancies seulement ton objet COM et tu l'utilises avec des objet dynamic (donc sans Intellisense sans rien).

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Tu utilises l'automation COM ou ADO.NET finalement ? Ce ne sont pas les mêmes choses.
    Pour l'instant, j'essaye désespérément l'une ou l'autre méthodes, mais sans succès.


    Citation Envoyé par Skalp Voir le message
    Pour inclure l'espace de nom System.Data.OleDb, il te suffit d'ajouter un using au début de ton fichier :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Data.OleDb;
    Je n'ai pas de référence vers System.Data, alors vers System.Data.Oledb ...

    Pour ce qui est de automation.com, j'ai télécharger ton projet "AutomationExcel" mais c'est un projet DotNet 2.0 et pas un projet silverlight....

  13. #13
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Bon, si tu regardes dans cet article

    http://broux.developpez.com/articles...light-4/#L10-2

    Tu vois que j'utilise Word (sans pour autant referencer quoi que ce soit).

    Toi tu veux utiliser Excel, alors tu vas utiliser le meme principe mais en T'INSPIRANT du code de l'autre article pour utiliser ton Excel.

    Quelque chose comme

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (App.Current.HasElevatedPermissions)
    {
        dynamic excelApp = AutomationFactory.CreateObject("Excel.Application");
        wordApp.Visible = false;
     
        dynamic workbook = excelApp.workbooks;
        workbook.Add();
    }

    Tiens j'ai trouve ca
    http://www.codeproject.com/KB/silver...WithExcel.aspx

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Merci Skyounet pour ta persévérance à m'aider

    Je peux comprendre que de temps en temps tu t'impatientes, mais en cette matière d'automation il y a visiblement eu d'importants changements et ce qui s'applique pour une application dotnet ne s'applique pas à Silverlight(comme pour l'article de Skalp qui par ailleurs est très bien fait).

    Entretemps, j'avais trouvé ton lien et ça devient plus clair.

    Il y a aussi
    http://www.silverlight.net/learn/tut...ion/#Exercise2

    ou

    http://www.dotnetcurry.com/ShowArticle.aspx?ID=576

    Merci encore à vous deux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 05/06/2010, 21h30
  2. Ouvrir un tableau Excel et en extraire des données
    Par valanagrid dans le forum C++
    Réponses: 4
    Dernier message: 31/07/2007, 09h13
  3. Macro pour ouvrir un fichier excel avec des ','
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/05/2007, 18h08
  4. Réponses: 2
    Dernier message: 19/03/2007, 17h38
  5. [Excel] Générer des fichiers Excel avec PHP et des données SQL
    Par MaTHieU_ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/03/2006, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo