Convertisseur csv/xls en mdb

Description

Bonjour, il existe plusieurs sources mais je poste tout de même celle-ci qui a fait ses preuves dans mon entreprise.

Le principe est le parsing/execution d'un fichier script.
Voici les commandes acceptées :
- commence par "//" est un commentaire
- #TABLE "nom de la nouvelle table" -> spécifie la création d'une nouvelle table
- #CSV "Add_source.csv" -> demande l'ouverture du fichier CSV et ajoute les données dans la dernière table spécifiée (on peut ajouter plusieurs CSV dans une même table)
- #XLS "add_source.xls" "add_destination.csv" -> converti un fichier XLS en fichier CSV (passage rapide par l'ouverture d'un excel)
- #LIEN "add_base_source.mdb" "nom_table" -> permet de lier la table désignée
- #LIEN "add_base_source.mdb" "*" -> permet de lier toutes les tables de la base
- #BASE "Base_Destination.mdb" -> lancer la création de la base en lui ajoutant les CSV défini précédemments

note pour les adresses de fichiers.
- ils doivent être encapsulés par des guillemets
- par défaut sont des adresse absolues
- si commencent par "./" alors sont des adresses relatives au répertoire de l'application

Pendant l'exécution, on affiche un log d'avancement. Ce log est sauvegardé en temps réel dans un fichier ".rtf"

Les scripts doivent avoir l'extension courte ".cdb"
On peut définir cette application comme application par défaut pour l'ouverture des fichiers ".cdb" ce qui permet de lancer un script en double-cliquant dessus (auto fermeture de l'application à la fin du traitement).

Il est à noter que la classe d'ouverture des CSV à été complètement implémentée et qu'elle permet de détecter automatiquement le séparateur. Elle se protège de certains caractères (fin de fichier et autres...)

Source / Exemple :


Tout est dans le zip

Conclusion :


A été testée sur de nombreux fichiers internes à mon entreprise et pas de bug signalé.
Plus gros fichier CSV ouvert -> Lexique3.txt téléchargeable sur le site "http://www.lexique.org/public/Lexique370.zip" 142694 lignes (en comptant le titre)

seuls bémols à noter:

Toutes les colonnes sont forcément de type STRING (et donc limitation à 255 caractères)
on pourrait envisager soit une phase de détection de type en parcourant toutes les valeurs de chaque colonne (--> prends bcp de temps sur un gros fichier) soit faire la même chose avec un échantillonnage

Du fait qu'on ouvre tous les csv avant de créer la base, il faut que le PC dispose de sufisament de RAM (pour ma part XP 2Go ram, je n'ai pas rencontré de problème)

cordialement,

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.