2010-08-27 5 views
0

J'ai une application winform C# qui montre des informations de trading aux utilisateurs. Ce que nous voulons faire, c'est être capable d'ouvrir une feuille Excel et de lui demander les données de l'application. En retour, l'application renvoie les données à Excel. Après cela, si les données sont mises à jour dans l'application, elles se reflètent également dans Excel. En d'autres termes, nous faisons afficher Excel ce que l'application est en train de montrer (seulement quand Excel le demande).Application Winform interactive avec Excel

Est-ce que quelqu'un sait ce dont nous avons besoin pour y parvenir?

Merci mille fois.

Répondre

0

Original:

pourrait utiliser une connexion de base de données dans Excel pour interroger la base de données directement?
Où l'application winform stocke-t-elle ses données?

Edit:
je peux penser à quelques approches:

  1. Utiliser l'automatisation Excel pour générer les feuilles de calcul que l'utilisateur sélectionne les colonnes.
    Ceci est probablement plus lent que l'option 2.
  2. Lors de la sélection des colonnes, enregistrez les informations dans une table de configuration de la base de données. Demandez à la feuille de calcul de lire ceci et d'utiliser VBA pour adapter la feuille à l'application.
    Ceci est plus complexe que l'option 1, mais beaucoup plus rapide.
+0

il stocke dans la base de données locale (sqlite). Mais l'idée est de permettre à l'utilisateur de manipuler les données qu'il voit à l'écran. L'utilisateur sur le frontal sélectionne les colonnes qui l'intéressent, puis les données sont affichées sur la grille. L'utilisateur peut créer de nombreux ensembles de colonnes différents et les modifier. Au fur et à mesure que l'utilisateur change, nous devons mettre à jour la grille Excel en conséquence. Par conséquent, aller directement à la base de données n'est pas une option. Excel doit être synchronisé avec l'état actuel de l'application. Merci –

+0

Cette solution (# 2) peut fonctionner mais ne donne pas la flexibilité. Tout d'abord, Excel doit demander des informations. Considérant que nous finissons par économiser dans la base de données locale, nous avons beaucoup d'écrans et nous allons devoir enregistrer beaucoup de données et une complexité supplémentaire à l'application. Connaissez-vous RTD Server (serveur de données en temps réel)? J'essayais de l'utiliser mais je n'arrivais pas à comprendre comment mon application pouvait alimenter les données. –

+0

Je ne suis pas familier avec le serveur de données en temps réel. Dans votre question vous énoncez (seulement quand excel le demande). Cela ne signifie-t-il pas, vous pouvez rafraîchir la mise en page et les données d'une table de configuration, lorsque les utilisateurs cliquent sur un bouton dans Excel? – Bravax

-1

Com interop peut vous être utile. http://dotnetperls.com/excel-interop il vous permet de créer/modifier/lire Excel (et d'autres applications com) à partir de votre application C# lorsque vous faites référence à leurs espaces de noms.

+0

johnnyh, interop permet à votre application d'interagir avec Excel. Ce que nous voulons est de permettre à Excel d'interagir avec l'application. En d'autres termes, Excel demande les données et l'application le fournit. –

+0

dans ce cas, vous pouvez écrire une macro personnalisée et avoir un bouton sur la barre d'outils Excel avec un appel à l'application, qui via interop repopule les données sur la feuille? – JohnnyH

+0

Pouvez-vous s'il vous plaît fournir un lien qui montre comment faire cela? Ce qui est très intéressant pour moi est cette ligne "avoir un bouton sur la barre d'outils Excel avec un appel à votre application". Comment peut-on exciter mon application? –

0

Une base de données en mémoire fonctionnerait-elle pour vous? J'ai utilisé celui-ci http://www.quilogic.cc/features.htm dans le passé pour que Access VBA fonctionne avec une application .net. Vous pouvez demander à votre application d'écrire les données actuelles dans le magasin de mémoire et qu'Excel peut lire le magasin via VBA.

Questions connexes