2009-04-14 7 views
1

Existe-t-il un moyen d'implémenter une source de données personnalisée fonctionnant avec la fonction "Importer des données externes"?Implémentation d'une source de données externes Excel

Disons que j'ai des données dans un format de fichier qu'Excel ne comprend pas. Je voudrais implémenter un add-in (ou quelque chose d'autre) pour Excel qui lui permet de comprendre ce format grâce à la fonctionnalité "External Data". Évidemment, je pourrais simplement convertir le fichier en quelque chose qu'Excel comprend déjà mais, pour des raisons de convivialité, je préférerais ne pas avoir cette étape supplémentaire.

Répondre

4

J'ai fini par créer un service qui exécute un serveur HTTP sur localhost qui fournit des données délimitées par des tabulations. C'était simple à développer et parfaitement adapté à mes besoins. Il s'intègre à la fonctionnalité Données externes sans avoir besoin de développer un pilote ODBC.

+0

Nous sommes également confrontés à la même situation. Avez-vous un échantillon pour voir cela en action. Je suis particulièrement intéressé par 1) Quel est le type de retour utilisé dans la réponse http? Est-ce une simple chaîne délimitée par des tabulations? 2) Quelle source de données dans Excel avez-vous utilisé pour vous connecter à ce service? 3) si cela fonctionne bien lorsque l'utilisateur actualise les données en utilisant le bouton RefreshAll dans l'onglet de données Excel? –

+1

Je n'ai pas d'échantillon mais je peux répondre à vos questions. 1) La réponse HTTP est un texte de type content/plain avec une simple chaîne délimitée par des tabulations (\ r \ n to end lines). La première ligne contient les en-têtes de colonne. Il s'agit exactement du même format de texte que si vous l'avez exporté en tant que délimité par des tabulations. 2) Dans l'onglet Données dans Excel, cliquez sur "À partir du Web" et entrez votre URL. Dans mon cas, je viens de pointer vers http: // localhost: 9000 qui est où j'ai le serveur web en cours d'exécution. 3) Le bouton Actualiser tout fonctionne très bien avec cette technique. –

+0

Merci beaucoup @ dave76 ... Notre scénario actuel consiste à extraire des données du cube SSAS en Excel, ce qui a été effectué auparavant par connexion directe. Comme les problèmes de sécurité soulevés en raison de la chaîne de connexion dans Excel, nous avons pensé à exposer SSAS comme notre propre service Web. Mais plus tard, nous avons pu voir qu'il y avait une fonctionnalité de pompe de données intégrée dans SSAS et nous avons décidé de l'utiliser. –

2

Un complément (ou quelque chose) ici serait un pilote ODBC (ou un pilote OLEDB). Je pense que tu ne veux pas en écrire un.

C'est le cas si vous voulez utiliser Importer des données externes, mais vous pouvez, bien sûr, créer un complément qui analyserait et chargerait le fichier lui-même. Il aura son propre élément de menu et ne sera pas lié à l'importation de données externes.

+0

Convenu +1. C'est comme ça que je le ferais. Chargez le fichier vous-même, puis remplissez la feuille avec l'automatisation. – RedBlueThing

0

Vous pouvez essayer XLLoop. Cela vous permet d'implémenter des fonctions Excel (UDF) sur un serveur externe. Ainsi, votre feuille de calcul pourrait contenir une fonction appelée LoadWidgetData (widgettype, date), qui appelle votre serveur.

Il existe des implémentations de serveur dans de nombreux langages (Java, Ruby, Python, PHP).

BTW, je travaille sur le projet alors laissez-moi savoir si vous avez des questions.

Questions connexes