Vous êtes ici : Accueil Zaclys Astuces / Les rubriques / Informatique / Système d'exploitation / Linux / SysAdmin

Voir un article

Passer un fichier excel dans une base de donnée postgreSQL

Avec linux , c'est tres facile de passer un fichier excel dans une base de donnée postgres. (thématiques : csv to sql, excel to sql, csv to bdd, excel to bdd)
Voici comment faire sur postgres :

1/ exporter depuis excel votre fichier au format CSV (fichier / exporter et choisir format CSV) , avec comme séparateur le point virgule


sur linux maintenant :

1/ si besoin, reconvertir si besoin le fichier csv en utf8 (moi je préfère bosser en utf8, et ouinedoz est encore en iso-8859-1 :
# iconv -f iso-8859-1 -t utf-8 fichier.csv > /tmp/fichierUTF8.csv

libreoffice
: depuis libreoffice vous pouvez exporter en utf8 directement


2/ nous allons utiliser la première ligne du fichier , qui contient les noms des têtes de colonnes :
# head -n 1 /tmp/fichierUTF8.csv
Nom;Prénom;Code postal;Ville;Téléphone;Fax;Email


Pour produire un code SQL capable de créer une table "import" portant ces mêmes colonnes, grâce à sed nous allons tout simplement reformatter la ligne pour en faire un ordre sql , comme ceci  :
#  head -n 1 /tmp/fichierUTF8.csv |sed -e 's/[^a-zA-Z0-9;]//g'  -e 's/;/" text,"/g' -e 's/^/create table import ("/' -e 's/$/" text);/'

create table import ("Nom" text,"Prénom text","Codepostal" text,"Ville" text,"Téléphone" text,"Fax" text,"Email" text);

c'est beau hein ? (bon ok faut être connaisseur pour apprécier)

libreoffice : si vous avez exporter avec la simple quote autour de chaque champs et la virgule en séparateur  :
#  head -n 1 /tmp/fichierUTF8.csv |sed 's/,/;/g' |sed -e 's/[^a-zA-Z0-9;]//g'  -e 's/;/" text,"/g' -e 's/^/create table import ("/' -e 's/$/" text);/'


3/ Bien maintenant passont sur postgres pour créer la table, il suffit de se connecter à votre base, ou bien d'en créer une nouvelle d'abord comme ceci (sous root avec sudo -i) : 
# su - postgres
$ createdb -E utf8  mabase
$ psql mabase
mabase=#



4/ maintenant que vous êtes connecté en psql sur la base, il suffit de copier/coller l'ordre SQL produit en 2 :
mabase=#  create table import ("Nom" text,"Prénom text","Codepostal" text,"Ville" text,"Téléphone" text,"Fax" text,"Email" text);
CREATE TABLE



5/ et il suffit de copier le contenu du fichier csv dans la table import fraichement créée :
mabase=#  copy import from '/tmp/fichierUTF8.csv' CSV HEADER  DELIMITER ';' ;
COPY


libreoffice : si vous avez exporter avec la simple quote autour de chaque champs et la virgule en séparateur :
copy import from '/tmp/fichierUTF8.csv' CSV HEADER QUOTE as '''' DELIMITER ',' ;


6/ on vérifie le contenu importé  ( x pour passer en affichage étendu ) :
mabase=#  [antislashe]x
Affichage étendu activé.

mabase=#  select * from import;
-[ RECORD 1]---+-------------------------
Nom            | Billout
Prénom         | raoul
Codepostal     | 90000
Ville          | Epinal
Téléphone      | 03 xx xx xx xx
Fax            |
Email          | xxxxxx@wanadoo.fr
-[ RECORD 2]---+-------------------------
Nom            | Machin
...



A voir aussi : Un peu de littérature sur le sujet chez Amazon

8 198 clics - Créé le 01/04/2010 par Tito - Modifié le 02/10/2012



Réagissez, commentez, discutez ...

InfoSoyez le premier à réagir !



Partager ?

diaspora  G+  facebook  twitter  Digg  Yahoo  Delicious  Technorati  myspace


Voir d'autres articles en rapport avec celui-ci ?



Stats des clics sur cet article : cliquez ici »



Vous voulez contribuer et publier un article dans cette rubrique ?

InfoMerci de vous identifier ou de vous créer un compte si ce n'est pas déjà fait.


ATTENTION
Vous êtes ici sur l'ancien site de l'association Zaclys.
Depuis 2019 notre site est ici : nouveau site Zaclys

icone user Me connecter :

InfoMerci de saisir vos identifiants.




Me reconnecter automatiquement à chaque visite sur ce navigateur :
               





retour






Plan du site | Aide | Mentions légales et CGU | RGPD | Travaux et incidents | Budget | Faire un don | Chouchen | Z pub | Logo et prospectus

© Association la mère Zaclys 1998-2020  - Zaclys v2.5

Suivez nous sur Diaspora, Mastodon, Google+, FaceBook ou Twitter