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

Windows Discussion :

VB.NET + fichier Excel : plantage d'application en cours d'exécution


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Par défaut VB.NET + fichier Excel : plantage d'application en cours d'exécution
    Bonjour à tous,
    j'ai créé une interface qui gère un fichier Excel en lecture seul puisqu'il est utilisé en écriture par d'autres postes.
    Dans l'application je fais l'extraction des données qui font parfois plus de 10000 lignes.
    J'ai utilisé une boucle for pour traiter les lignes :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    For i As Integer = 1 To application.Cells(application.Rows.Count, "B").End(xlUp).Row
    Bien sûr il prend du temps pour traiter les données et d'un autre coté j'ai utilisé "filesystemwatcher" pour contrôler si le fichier est modifié ou non.
    Si le fichier est modifié l'application ouvre le fichier Excel et traite les données. Mais le problème est la vitesse d’écriture dans le fichier plus rapide que l'ouverture à chaque modification --> pas d’accès au menu de l'application et message exception :
    system.runtime.interopservices.comexception echec de l'appel de procédure distant
    après 3 ou 4 modifications de fichier.
    le fichier est a distant(réseau local).
    J'ai cherché en vain une solution dans les Cours et tutoriels Excel. y a-t-il une solution ou autre solution de manipulation de ce type?!
    merci.
    cordialement.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ce n'est pas vraiment le bon forum pour épiloguer très longtemps; d'autant plus qu'il y a un forum VB.net.

    Ceci étant dit, il existe des moyens d'ouvrir, créer ou modifier un fichier Excel en VB.net (en fait tout langage .net) sans même avoir Excel:

    1) Directement avec System.io.packaging
    2) Avec le SDK OpenXML Téléchargement ici de la documentation hors-ligne nuget
    3) Avec des bibliothèques dérivées du SDK comme Closed XML et EPPlus
    4) avec ADO.net (sur le même principe que Access ou SQLServer) avec le runtime d'Access

    Cependant, le partage de classeurs Excel est source de nombreux problèmes et devrait être évité.

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Par défaut
    Merci pour votre réponse.
    Mais je suis obligé de traiter les fichiers Excel puisque les autres postes sur réseau enregistrent les données sous la forme de fichiers Excel (CSV).

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Plus j'y pense, moins c'est un problème de Windows. Et puis VB.net peut ouvrir directement un fichier texte (txt ou csv, il s'en fout. C'est juste un problème de programmation.)

    Le pilotage par automation est généralement une solution appropriée pour utiliser une fonction intrinsèque d'Excel impossible ou difficile à programmer. Mais c'est la façon la plus lente et la moins efficace. C'est dire à Excel de faire quelque chose qui ne peut pas être fait en VB.net. Mais lire un fichier texte c'est facile en VB.net.

    Et Windows ne peut pas faire grand chose pour ce problème-là. C'est essentiellement un «esclave» du Framework .net.

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 10
    Par défaut
    Bonjour, et merci.
    Pensez-vous que l'importation de fichier CSV vers base de données peut traiter la problème. Si oui, j'ai déjà cherché sur plusieurs forums que l'importation de fichiers CSV rencontre plusieurs problèmes et j'ai déjà pratiqué ça: "La table externe n'est pas dans le format attendu."

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Label1.Text = OpenFileDialog1.FileName
    Using Conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + Label1.Text + ";Extended Properties=""Excel 12.0;HDR=YES;""")
                Conn.Open()
    ...
    Y a-t-il une solution pour ce genre de problème ?
    Mon projet fin d'étude est bloqué sur cette situation.
    Puis-je utiliser un autre langage plus efficace que vb.net pour les fichiers Excel ?
    Remarque: nos machines enregistrent les données de mesure de carte électronique sous la forme de fichiers CSV.
    Cordialement.

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Using Conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + Label1.Text + ";Extended Properties=""Excel 12.0;HDR=YES;""")
    Ta chaîne de connexion doit être modifiée. Regarde là pour les chaînes de connexion

    Et puis par précaution remplace tes + par l'esperluette (&).

    Tu peux aussi regarder cet exemple. J'utilise un TextFieldParser pour lire un fichier texte et l'afficher dans un DataGridView. Je ne peux pas le regarder pour l'instant, parce que je n'ai pas encore réinstallé Visual Studio après le remplacement de mon disque dur. La partie importation du fichier texte, permet de détecter si le séparateur est un point-virgule, une virgule ou une tabulation. Si le fichier ne contient pas d'entêtes de colonnes, il en rajoute. Et je pense qu'il utilise une ou des DataTables. Et j'ai pris le temps de mettre des commentaires.

Discussions similaires

  1. Importation Fichier Excel dans une application Lotus Web
    Par djaminebiz dans le forum Lotus Notes
    Réponses: 2
    Dernier message: 29/04/2015, 12h13
  2. [AC-2003] Problème d'importation d'un fichier Excel dans une application ACCES
    Par zahira87 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/03/2013, 14h08
  3. integre fichier excel dans mon application
    Par jalalnet dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/06/2011, 09h31
  4. Modifier fichier Excel dans l'application
    Par Spellbinder dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/02/2011, 23h01
  5. [VB.NET] Fichier Excel vérouillé avec mot de passe
    Par rafano dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2004, 14h36

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