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 :

acces fichier excel sur disque partagé ?


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut acces fichier excel sur disque partagé ?
    Bonjour a tous !
    Alors je vous explique ...
    j'ai un fichier Excel qui est sur le disque T:/ partagé par plusieurs postes et en fait ce fichier est actualisé en temps réel grâce a une application qui se trouve sur un poste distant du mien. Je ne peux pas me connecter a cette application directement de mon poste. J'ai besoin de récupérer les données de ce fichier le plus souvent possible pour les mettre dans un data set (en ouvrant une OleDbConnection etc ...)
    Je voudrais savoir si vous avez une idée ? pour que je puisse quand je fais la connexion ça prenne les valeurs actuelles ?

    Merci d'avance pour votre aide

  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
    Citation Envoyé par Cokate Voir le message
    Je voudrais savoir si vous avez une idée pour que je puisse quand je fais la connexion ça prenne les valeurs actuelles ?
    Si tu poses la question, je suppose que tu as déjà essayé et que ça ne marche pas. Pourrais-tu nous confirmer cela avant d'aller plus loin (au cas où) ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Si tu poses la question, je suppose que tu as déjà essayé et que ça ne marche pas. Pourrais-tu nous confirmer cela avant d'aller plus loin (au cas où) ?

    Non pour le moment quand je me connecte au fichier excel (via la OleDbConnection) il n'y a pas de modification des valeurs dans le fichier excel (bien que celui ci soit ouvert et bouge en temps réel sur le poste distant)

    J'ai également essayé de copier le fichier Excel qui est sur le disque partagé sur mon disque local puis de travailler avec la copie (File.Copy) mais cela ne fonctionne pas non plus. Le problème c'est que dans le fichier Excel il y a des liens avec une application qui met a jour les données en temps réel. Seulement il faut être loggué sur l'application en question pour que les liens fonctionnent ... et comme cette application est la plateforme de travail de mes supérieurs je n'y ai pas accès ...

    des idées ?
    merci d'avance ..

  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
    C'est la plateforme de travail de tes supérieurs et ils ne peuvent pas t'aider à lire le fichier en temps réel ?... Tu essayerais pas de pirater le système, par hasard ?

    Plus sérieusement, quelques idées et pistes :
    - Tu as essayé de fermer puis réouvrir la connexion oledb ?
    - Peux-être que tu ne vois pas les dernières données parce que le fichier n'est pas encore enregistré de l'autre côté ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    lol non pirater le système !! c'est parce que c'est des traders et qu'ils ont besoin de leur plateforme sinon ils perdent de l'argent ... en gros je ne peux pas utiliser le logiciel qui met a jour car c'est leur outil de travail et que pour y avoir accès il faudrait payer ...

    pour ce qui est de la connexion OleDb à la fin de chaque lecture du fichier je la ferme
    par contre oui je ne sais pas si le fichier est enregistré ...je vais exploiter cette piste !
    mais bon va falloir qu'il soit enregistré a chaque fois qu'il y a modification des données ça risque d'être lourd non ??
    il n'y a pas d'autre moyen ?

    merci de ta réponse en tout cas !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    bon alors finalement, la seule solution serait de sauvegarder le fichier excel mais le problème c'est que mon programme C# y accède très souvent (c'est a dire bien de 5 a 10 fois par seconde) ce qui est lourd ..
    du coup est ce que recopier a chaque consultation du fichier excel (copie par valeur, parce qu'il y a des liens dans les cellules du fichier excel) serait judicieux ?
    et si oui quelqu'un sait il comment exécuter du code VBA dans C# ??? (macro qui fait un paste special ?
    merci d'avance pour votre aide ...

  7. #7
    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
    Enregistrer ou copier le fichier plusieurs fois par seconde, ça risque d'être lourd en effet ! Surtout si une autre application le modifie.
    Quelle est la fréquence de modification des données dans ce fichier Excel ? Si les données sont modifiées très souvent, il va falloir faire ça autant de fois que tu devras consulter les données.

    Si tu as la possibilité d'intervenir sur ce fichier Excel, une solution relativement performante serait effectivement de passer par des macros et de les exécuter par le code. Mais bon, je ne crois pas que tu puisses récupérer des données d'une macro avec C#, à moins d'utiliser le presse-papier.

    Essaye de faire un "enregistrer sous" avec C#, tu t'affranchiras déjà des accès de l'autre application. Mais faire ça plusieurs fois par seconde, risque de faire chuter les performances, comme tu dis.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    oui en effet les données sont mises a jour très souvent car en fait c'est les prix des actions sur le marché ... du coup je lis le fichier excel bien 5 a 10 fois par seconde dans mon programme ...
    j'avais pensé faire une macro VBA qui copie dans un autre fichier excel les données et appeler cette macro depuis C# a chaque consultation mais bon si ca fait tout ralentir sachant que le but du programme est d'etre en phase avec le marché ... ca va etre dur ...
    sinon bah je vais quand meme essayer... comment enregistrer un fichier autrement que par un streamwriter ou streamreader ? puisque bon sur un fichier excel ca ne fonctionne pas ...
    merci d'avance

  9. #9
    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
    Après réflexion, je pense que lire directement le fichier Excel non enregistré ne t'amèneras à rien, tu auras le même résultat qu'avec une connexion oledb.

    Les seules solutions que je vois seraient de :
    - mettre au point une macro indépendante qui enregistre le fichier Excel plusieurs fois par seconde (fréquence définie directement dans la macro). A partir de là, je pense qu'une connexion oledb devrait faire l'affaire.
    - mettre au point une macro indépendante qui exporte les données plusieurs fois par seconde (fréquence définie directement dans la macro) dans un fichier texte. Je pense que la lecture d'un fichier texte devrait être plus rapide qu'une connexion oledb (à confirmer).

    Quoi qu'il en soit, ces deux solutions ne seront pas anodines pour l'autre application...

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    oui bon je vais voir avec ses options mais c'est vrai que l'enregistrement périodique ca va bien ralentir les choses ... bon je verrai ce que ca donne au niveau des performances ....
    Merci en tout cas

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/02/2015, 17h31
  2. [XL-2010] Partage de fichier Excel sur intranet
    Par binabiklefou dans le forum Excel
    Réponses: 0
    Dernier message: 24/01/2013, 12h13
  3. Réponses: 6
    Dernier message: 27/03/2012, 16h58
  4. Enregister un fichier excel sur le disque dur
    Par cyclopsnet dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 13/08/2009, 18h11
  5. Comment enregistrer fichier Flash sur Disque?
    Par kikica dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 16/01/2006, 14h37

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