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

C# Discussion :

Manipuler document Excel dans Winform


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Points : 60
    Points
    60
    Par défaut Manipuler document Excel dans Winform
    Bonjour,

    Après moultes recherches qui me semblaient plus ou moins claires, je viens poser ici quelques questions pour confirmer mes doutes et avoir votre avis sur la question.

    J'aimerais permettre à un utilisateur d'ouvrir depuis une winform un fichier Excel quelconque, puis que sur l'appui d'un bouton, que du code c# récupère la zone sélectionnée de l'onglet actif.

    Le fichier ne contiendra aucune macro utile, il peut avoir plusieurs onglets et se situer n'importe ou.

    J'ai pensé au départ au WebBrowser pour me permettre de visualiser le fichier Excel qu'ils souhaitent, mais j'ai plusieurs soucis/questions :
    • le fichier est ouvert dans Excel et non dans mon Webbrowser... pas bon ca
    • est-il possible de récupérer la zone sélectionnée de l'onglet contenu dans le WebBrowser ?
    • y a t'il d'autres solutions qui me permettraient d'effectuer ce dont j'ai besoin ?


    J'utilise le code standard fourni par Microsoft et tous les autres sites quasiment sur l'utilisation du Webbrowser, qu'il provienne de la dll se trouvant dans system32, du WebControl du windows.form ainsi que celui du Excel.Tool...

    Je développe sous VS2008 avec le FrameWork 3.5

    Merci d'avance pour les personnes qui pourraient me fournir une piste

  2. #2
    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
    Que comptes-tu récupérer ? Les données et/ou la mise en forme Excel ?

    Avec l'automation, tu pourrais t'en sortir pas mal pour les deux... Mais c'est assez délicat à mettre en place.

    Mais avec le presse-papier, tu pourrais t'en sortir encore plus facilement pour récupérer juste les données. Il suffirait de demander à l'utilisateur de faire un "copier" de sa sélection.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Points : 60
    Points
    60
    Par défaut
    Bonjour Skalp.

    Effectivement je veux récupérer les données, et utiliser le presse-papier me semble être une solution convenable si je peux récupérer ces données par colonnes/lignes (en gros une zone de sélection devrait comporter deux colonnes et n lignes, ensuite c'est le code qui gère le reste).

    Ta solution serait donc simplement de récupérer le contenu du presse papier via du code c#, le fichier étant ouvert indépendamment. cette solution poserait un problème pour le cas où le copié n'ai pas fonctionné (mauvaise sélection du fichier), mais il s'avère qu'elle est simplissime.

    Pour la solution WebBrowser, j'utilise la source suivante :
    http://www.codeproject.com/KB/office...ing_Excel.aspx

    Et avec cette solution je n'arrive pas à ouvrir le fichier Excel dans le WebBrowser (il s'ouvre en dehors).

    Une solution intermédiaire serait donc d'ouvrir le fichier Excel dans le WebBrowser, de proposer un bouton "copier la sélection" qui simulera un controle+c sur le fichier ouvert dans le webBrowser, puis une récupération des données ainsi copiés depuis le presse papier.

    Le problème restant est donc : comment faire pour ouvrir le fichier Excel dans mon WebBrowser svp ?

    Merci encore.

  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
    Plusieurs solutions pour afficher un document Excel dans une winform sont comparées ici : Embedding Excel in WinForms
    J'ai juste testé le dsoFramer, ça marche pas mal du tout ! En plus, il y a le menu Excel qui s'affiche !

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Points : 60
    Points
    60
    Par défaut
    J'avais vu ce lien et le dsoFramer mais le PareFeu bloque le téléchargement (il attendra demain) donc je verrais cela demain.

    J'ai remarqué que les document office 2007 étaient mal gérés par le WebBrowser (ouverture dans Excel et non dans mon WebBrowser), mais cela n'explique pas qu'un document Excel 2003 ne s'ouvre pas dans mon WebBrowser...

    Si personne n'a d'idée et que la solution dsoFramer peut convenir, je clôturerais ce post, sinon je suis preneur de la solution

    Merci en tous cas pour ton aide

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Points : 60
    Points
    60
    Par défaut
    Problème résolu

    http://support.microsoft.com/kb/927009/

    En fait, le WebBrowser marche pas super bien avec Office 2007, mais aussi avec IE7....

    Il suffit de Rajouter/Editer dans les registres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
    "BrowserFlags"=dword:80000A00
    Ensuite la page est bien intégrée au WebBrowser

    Merci en tous cas à Skalp pour son aide et ses propositions

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2008, 15h25
  2. Réponses: 0
    Dernier message: 18/05/2007, 10h44
  3. Comment manipuler un document Excel ?
    Par casho dans le forum Documents
    Réponses: 1
    Dernier message: 06/10/2006, 17h19
  4. manipulation de feuille excel dans access
    Par demerzel0 dans le forum Access
    Réponses: 9
    Dernier message: 28/11/2005, 16h52

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