[Résolu]importation de données excel dans ma base

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

[Résolu]importation de données excel dans ma base

Message par yerffoj »

bonjour,

je voudrais importer un fichier excel (fichier comportant des indemnisations de personnes pour des études)
fichier de ce type :
etude 1 etude 2 etude 3 etude 50
sujet 1 10
sujet 2 8 10
sujet 3 16
sujet 2000 20 10

comment l'importer directement dans ma base ? je ne veux et peux pas rentrer manuellement ces données.

merci pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Beetle le 26 mars 2018 20:28, modifié 3 fois.
Raison : Ajout de la balise "[Résolu]", la coche verte seule ne suffit pas.
open office 4.1.0 sur windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: importation de données excel dans ma base

Message par jeanmimi »

Bonjour,
Comme le fichier du tableur a des en-têtes de colonnes et pas de lignes vides (enfin, je suppose, car il n'est pas joint), tu sélectionnes la zone de cellules, puis copier et coller dans la Base, soit dans une Table existante soit dans une nouvelle Table.
 Ajout : Je vois que tu cites une étude 50, cela veut-il dire qu'il peut y avoir 50 études rémunérées pour le même participant ? 
Dernière modification par jeanmimi le 19 mars 2018 12:07, modifié 2 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

bonjour,

merci pour votre réponse. Je connais cette manipulation, mais le soucis c'est que dans ma base actuellement (base refaite sur les conseils des différents modo du site) je ne vois pas comment l'incrémenter en le copiant... et il faudrait qu'il soit raccordé dans ma table ...
mon fichier excel possède actuellement une colonne nom (que je peux changer par l'id coordonnées) et des colonnes correspondant aux différentes études réalisées. Certaines lignes (donc certaines personnes) n'ont pas forcément participé à des séances donc il se peut qu'il y ait des lignes vides. Est-ce un problème?
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: importation de données excel dans ma base

Message par Piaf »

Bonjour
jeanmimi a écrit :car il n'est pas joint)
Joins un fichier tableur avec la même structure que ton fichier de travail mais avec des données anonymes.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: importation de données excel dans ma base

Message par jeanmimi »

yerffoj a écrit :Certaines lignes (donc certaines personnes) n'ont pas forcément participé à des séances donc il se peut qu'il y ait des lignes vides. Est-ce un problème?
Ce qui pose problème, c’est lorsque le Tableur source n'a pas d'en-êtes de colonnes et que des lignes vides ont été laissées pour faire joli.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

voici mon fichier anonyme.
les lignes vides sont intentionnelles dans mon cas.
merci par avance
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4.1.0 sur windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: importation de données excel dans ma base

Message par jeanmimi »

En regardant ton tableau, je vois que, pour la même étude, la rémunération peut être variable.
Est-ce le cas ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: importation de données excel dans ma base

Message par Piaf »

Bonjour
Une solution éventuelle
Dans un premier temps ajouter les Etudes dans la table Etudes.
Puis créer une table temporaire "temp" dans ta base (refCoord Integer clef primaire, refEtude Integer, Montant Double).
Dans ton fichier tableur sélectionner les colonne A1:B1251, Menu Données > Filtre > Standard. Filtrer la colonne etude 1 sur la valeur - non vide -.
Filtre.png
Copier le résultat du filtrage, le coller dans la table temp en faisant correspondre id coordonnées avec refCoord et etude 1 avec Montant.
Ensuite, Ajouter la référence à l'étude

Code : Tout sélectionner

UPDATE "temp" SET  "refEtude" = valeur de l'identifiant de l'étude
dans l'outil SQL
Enfin mettre à jour la table Participation

Code : Tout sélectionner

INSERT INTO "Participation" ("refCoordonnees","refEtude","Montant")
SELECT "refCoord", "refEtude","montant" FROM "temp"
toujours dans l'outil SQL.
Participation.png
la manip est à recommencer pour chaque étude après avoir vidé la table temp.
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: importation de données excel dans ma base

Message par jeanmimi »

J'avais testé aussi une autre méthode, mais aussi très longue avec les 50 études à traiter et à isoler.
J'avais copié tout le tableau dans une Table, puis par 50 requêtes successives, extrait les participants à chaque étude et la rémunération servie.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

bonjour,

et merci pour vous réponses. je vais bien prendre le temps de lire vos réponses et je reviendrais vers vous en cas de besoin. Il faut que je teste...
Cela me parait assez complexe, n'y a-t-il pas plus simple?

merci encore en tout cas.
open office 4.1.0 sur windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: importation de données excel dans ma base

Message par jeanmimi »

yerffoj a écrit :Cela me parait assez complexe, n'y a-t-il pas plus simple ?
Dans le tableur que tu veux traiter, la feuille s'apparente à un État de sortie de base de données. Il faut donc reconstituer la source, ce qui est long, mais sans doute moins que de saisir à nouveau les centaines de données.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

bonjour,

j'ai pu me pencher sur la proposition de Piaf et cela marche très bien :)
enfin j'ai pu rentrer sans difficulté mes 2 premières études, mais à partir de la 3ème y a un HIC :s

je détaille le soucis :
toutes les étapes du départ fonctionne
"
Dans un premier temps ajouter les Etudes dans la table Etudes.
Puis créer une table temporaire "temp" dans ta base (refCoord Integer clef primaire, refEtude Integer, Montant Double).
Dans ton fichier tableur sélectionner les colonne A1:B1251, Menu Données > Filtre > Standard. Filtrer la colonne etude 1 sur la valeur - non vide -.
Filtre.png

Copier le résultat du filtrage, le coller dans la table temp en faisant correspondre id coordonnées avec refCoord et etude 1 avec Montant.
Ensuite, Ajouter la référence à l'étude
CODE : TOUT SÉLECTIONNER AGRANDIR
UPDATE "temp" SET "refEtude" = valeur de l'identifiant de l'étude
dans l'outil SQL

"

et une fois que je veux passer la dernière commande " INSERT INTO "Participation" ("refCoordonnees","refEtude","Montant")
SELECT "refCoord", "refEtude","montant" FROM "temp" "

j'ai un message d'erreur qui s'affiche "1: Integrity constraint violation - no parent SYS_FK_269 table: Table Coordonnées"
je ne comprend pas ce qui ne fonctionne pas car j'ai procédé exactement de la même manière pour les 2 premières études et cela a marché parfaitement.

merci pour votre aide.
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: importation de données excel dans ma base

Message par Piaf »

Bonjour
Je ne reproduis pas avec le fichier donné en exemple
Etude3.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

Piaf a écrit :Bonjour
Je ne reproduis pas avec le fichier donné en exemple
Etude3.png
A+
bonjour,

je n'ai pas compris votre réponse.Pouvez-vous m'expliquer ce qui ne va pas svp?

merci.
open office 4.1.0 sur windows 10
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: importation de données excel dans ma base

Message par yerffoj »

je crois avoir identifier mon problème !
Enfait j'ai importé ma liste de personne dans la table coordonnées, j'ai importé une liste de 2180 personnes au total et apparemment il n'y en a que 2159 qui ont été enregistré dans ma base.
j'ai du coup recommencé l'importation et cela m'a fait la même chose 2159 sur 2180 personnes, mais un message d'erreur c'est affiché :
"value too long in statement [INSERT INTO "Table Coordonnées" ("ID_coordonnées","Nom","Prénom","Sexe","DateNaissance","Email","Tel portable","Tel fixe", "Adresse", "Code postal", "Ville", "Date d'inscription/mise à jour") VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"

Je comprend qu'il y a quelque chose de trop long mais quoi? j'ai donc augmenté la taille dans ma table de toutes variables et cela marche puisque j'ai mes 2180 personnes :)

J'ai ensuite refait la méthode donné par Piaf et cela marche parfaitement maintenant. En fait il me manquait des id coordonnées donc il n'y avait pas de correspondance.

en tout cas merci beaucoup. je clôture le sujet :)
Dernière modification par Beetle le 26 mars 2018 20:36, modifié 1 fois.
Raison : Suppression de la coche verte inutile ici en fin de fil de discussion.
open office 4.1.0 sur windows 10