2009-01-05 7 views
1

Quel est le meilleur moyen d'importer des données hautement formatées d'Excel vers le serveur SQL? Fondamentalement, j'ai plus de 250 fichiers Excel qui ont été exportés à partir d'un outil de reporting dans un format que nos utilisateurs professionnels préfèrent. C'est un outil tiers qui ne peut pas exporter de données dans un autre format. J'ai besoin de "scrub" ces fichiers sur une base mensuelle et les importer dans une base de données. Je veux utiliser SQL Server 2005Comment importer des données très formatées d'Excel vers une base de données?

Formats de fichier ressemblent à ceci:

              Report Name 

                Report Description 

            MTH/DEC/2003 MTH/JAN/2004 MTH/FEB/2004 
            Data Type Data Type Data Type 

Grouping 1       1900   1700   2800 

    Grouping 2       1500   900   1300 

    Detail       300   500   1000 

    Detail       1100   200   200 

    Detail       100   200   100 

Répondre

1

vous pouvez écrire une application simple de l'analyseur. il y a beaucoup d'api qui vont gérer la lecture des fichiers Excel. J'ai écrit un en Java et cela n'a pris qu'un jour ou deux.

here est une api.

Bonne chance

EDIT: J'ai oublié de mentionner que nous aurons également besoin d'un api sql tels que JDBC. Encore une fois, nous utilisons JDBC pour la majorité de nos applications et fonctionne très bien.

0

En supposant que vous avez Microsoft Excel, vous pouvez également utiliser l'interface ActiveX exposée d'Excel. Plus d'informations ici:

http://msdn.microsoft.com/en-us/library/wss56bz7(VS.80).aspx

Vous pouvez utiliser que dans tout ce qui peut utiliser les contrôles ActiveX (C++, VB6, VB.NET, etc ...) pour créer un analyseur ainsi, pour le suivi de ce Berek m'a dit. Je l'ai déjà fait avec perl et MYSQL.

0

J'ai écrit un simple script perl qui analysait le fichier et renvoyait le contenu dans un fichier .sql. Ensuite, ceci peut être fait manuellement ou inclus dans le script perl, ouvrir MYSQL et utiliser le fichier .sql.

+0

Existe-t-il une bibliothèque que Perl peut utiliser pour accéder à Excel de manière raisonnable ou avez-vous dû analyser le fichier de données brut lui-même? – EdgarVerona

+0

Je devais le faire moi-même, la meilleure façon de vérifier les données brutes est de les ouvrir dans un éditeur de texte, afin de savoir quels sont les caractères dont vous devez vous débarrasser. L'expression rationnelle de Perl était très utile, cependant. – ForYourOwnGood

+0

Ouch ... oui, bien fait =) – EdgarVerona

1

Personnellement, je le ferais en utilisant SSIS. Il peut ne pas être trivial à configurer car le format de fichier semble relativement complexe (mais je suppose que cela peut être vrai quel que soit l'outil utilisé), mais tant qu'il reste cohérent, il s'exécute rapidement chaque mois et les packages SSIS sont faciles mettre sous contrôle de la source. Comme SSIS fait partie de SQL Server, il est facile de s'assurer que tous les serveurs sont disponibles. La clé est de bien comprendre comment ce format se rapporte à la façon dont vous stockez les données dans la base de données. C'est la partie difficile, peu importe l'outil que vous utilisez.

0

Vous pouvez consulter les procédures et fonctions CLR dans SQL Server. Avec une procédure CLR, vous pouvez effectuer l'ensemble de votre nettoyage dans une application VB ou C# .NET tout en exécutant les travaux à partir de SQL Server comme n'importe quelle autre procédure stockée ou UDF.

0

Cela peut sembler un peu simpliste, mais vous pouvez simplement vider les données au format csv et faire un peu d'analyse de la sortie pour convertir en instructions d'insertion pour SQL.

0

Pour une application Java, POI (http://poi.apache.org/) est assez bon pour les applications d'intégration Excel.

Questions connexes