Accueil > Tableur > supports > Importer une feuille Calc dans Base

Importer une feuille Calc dans Base

mercredi 24 mars 2010

Ce support fait suite aux deux tutos – lettre type et étiquettes – concernant le publipostage sur OpenOffice Writter.

Pourquoi importer la feuille de calcul en tant que table d’un fichier « .odb » ?

Nous avons vu qu’il est nécessaire d’utiliser le module « base de données » de la suite bureautique (Base) pour réaliser le publipostage sur OpenOffice.

Même si, comme dans notre exemple, la source de données est une feuille de calcul, cette dernière doit obligatoirement être déclarée par Base pour qu’il soit possible d’insérer les champs, ainsi que tous les enregistrements lors de la fusion.

En réalité, si un fichier « .odb » est bien créé lors de cette procédure de publipostage, nous avons vu qu’il n’est pas indispensable de connaître Base pour lancer l’impression de vos étiquettes ou de vos lettres types en nombre.

Le fait de récupérer une feuille Calc ou Excel ainsi directement sur OpenOffice présente l’intérêt de la simplicité : on peut, sans trop d’effort d’apprentissage, (quelques connaissances rudimentaires sur le tableur), utiliser assez rapidement le publipostage sans qu’il soit nécessaire de connaître Base.

Une fois que la liaison est établie entre le document principal (Writer) et la source de données (Calc), il suffit, avant chaque série d’impression, de corriger, si besoin, la feuille de calcul et de lancer la fusion.

Nous avions constaté, néanmoins, que cette solution nous prive de la possibilité d’éditer la source de données (et de la modifier) directement au niveau de Base. C’est bien dommage, car il s’avère qu’un environnement de gestion de base de données, tel que Base, est justement prévu pour effectuer ce type de tâche : rechercher, trier, filtrer, corriger, supprimer ou ajouter de nouveaux enregistrements à une base de données. Et il ne s’agit-là, que d’une toute petite partie de ce que peut réaliser ce type de programme. Imaginez qu’en plus d’une simple liste d’adhérents, il soit, par exemple, nécessaire de traiter un fichier « cotisations » et « réunions, colloques et manifestations ». Dans ce cas mieux vaut laisse de côté votre tableur pour vous orienter vers un vrai système de gestion de base de données, tel que Base.

Le présent tuto, ne vise nullement à présenter le système de gestion de base de données sur OpenOffice (cela ne fait partie de mon programme d’activité). Je propose juste de monter une méthode permettant d’ importer une feuille de calcul en tant que table de la base de données ; ce qui permet déjà de mettre à jour la source de données sans avoir à passer par le tableur et, également, d’envisager d’intégrer d’autres tables reliées à cette table « adhérents ».

Pour plus d’information, concernant le module Base, je vous recommande de vous reporter directement à la documentation d’OpenOffice.

Créer une nouvelle base

Un clic par le menu « Démarrer », puis « Tous les programmes », puis le dossier « OpenOffice », puis « OpenOffice.org Base » :

Sur cette fenêtre, je vérifie que « créer une base de données » est activé, puis je valide par « Suivant » :

Je conserve les options par défaut et je clique sur « Terminer » :

Comme pour l’enregistrement de n’importe quel fichier, je choisis ensuite le niveau d’arborescence de mon système dans le quel sera enregistré cette nouvelle base ; ce sera dans « Mes documents » :

Puis dans ce dossier « AG CONVOC ». Il s’agit du dossier dans lequel est déjà enregistré la feuille de calcul que je vais importer.

Ce n’est pas une obligation de rassembler ainsi tous les éléments du même projet dans le même dossier mais je préfère procéder de la sorte, par souci de clarté.

Je nomme ce fichier « ADHERENTS ». Il s’agira d’un fichier au format « ODF », portant l’extension « .odb » :

Après validation de l’enregistrement, le programme présente l’interface de Base.

Premier constat : ce type de programme se différencie des applications de type « traitement de texte » ou « tableur » : il ne s’agit pas ici, en première approche, d’éditer directement quelque chose, tel qu’un texte ou des chiffres dans un tableau, mais plus de gérer des interfaces permettant d’accéder aux données.

La présentation générale ressemble donc à une liste de rubriques permettant d’activer différents assistants.

Il est temps de passer à l’étape d’importation de la feuille de calcul proprement dite.

Pour cela, je laisse de côté ponctuellement Base, sans fermer l’application.

Via un raccourci « Mes documents »...

… je navigue jusqu’au dossier...

… dans lequel se trouve la feuille de calcul...

… afin d’éditer ce fichier, par double-clic sur l’icône.

OpenOffice Calc s’ouvre, en toute logique. Je sélectionne le tableau (par exemple par « CTRL-MAJ + Fin »)...

… et d’un clic droit de la souris, je copie ma sélection :

Nous en avons fini avec Calc. Je quitte le programme.

De retour sur Base, après avoir vérifié (colonne de gauche) que la rubrique « Table » est bien activée, j’effectue à nouveau un clic droit de la souris dans cette zone de la fenêtre et je choisis « Coller » :

Un assistant s’affiche alors à l’écran.

Première chose, puisque je viens de créer une nouvelle table dans ma base, il me faut lui donner un nom. Il est préférable que la base et les tables portent des noms différents.

Ce sera « liste_adherents » :

Très important, il faut créer un champ qui n’exista pas dans la feuille de calcul et qu’il est indispensable d’avoir pour utiliser les données sur base : il s’agit de la clé primaire.

Je clique donc sur cette option afin de cocher la case :

Puis je tape l’intitulé du champ. Là aussi, il est recommandé de nommer de façon personnalisée la clé primaire et de ne pas laisser l’identifiant « ID » par défaut. Cela devient surtout indispensable s’il faut, par la suite, relier plusieurs tables entre-elles.

La clé primaire de cette table, s’intitulera donc « ID_adherents ». Remarquez que j’ai remplacé l’espace entre « ID » et « adherents » par le signe « _ » (souligné). De même, c’est volontairement que je n’ai tapé l’accent sur le « e » de « adherents ». Il en est de même, d’ailleurs, pour le nom que j’ai donné à la table, elle-même (« liste_adherents »).

Ces contraintes, ne sont nullement obligatoires pour utiliser Base, mais cela me laisse plus de latitude pour exploiter, par la suite, cette table dans d’autres système de gestion de base de données.

Je clique ensuite sur « Suivant » :

L’assistant propose ensuite d’importer les autres champs de la table. Colonne de gauche, je retrouve les indications qui figurent dans la feuille de calcul.

Je clique sur cette double-flèche :

Afin de faire passer tous les intitulés en colonne de droite :

Je clique ensuite sur « Suivant » ; ce qui fait apparaître cette fenêtre-ci-dessous.

La clé primaire a été ajoutée. Elle figure en première position, facilement identifiable avec son icône caractéristique.

Une notion très importante en base de données, concerne le « typage » des données.

Par exemple, nous voyons que la clé primaire est de type « INTEGERr » (nombre entier)...

… et que le champ suivant, « Titre » est de type « VARCHAR », (texte de longueur variable).

Comme d’ailleurs, tous les autres champs de la table. En réalité, le type « VARCHAR » permet, à peu de chose près, de mettre tout ce que vous voulez (sauf les œuvres complètes de Proust, car on est quand même limité à un nombre de caractères).

Alors, là, disons-le clairement : si l’on devait « faire les choses proprement », il faudrait indiquer précisément, pour chaque champ :

 le type de données ; sachant, par exemple, que celui du code postal pourrait être de type « INTEGER », contrairement à celui du n° de téléphone, qui comporte à la fois des chiffres et des espaces...

 imposer ou nom le remplissage à chaque enregistrement (« Saisie requise »)...

 indiquer le nombre de caractères ; par exemple « 5 » pour le code postal(« Longueur »)...

 en toute cohérence, avec ce qui a été fait, pour le nom de la table et celui du champ « clé primaire », renommer tous les champs qui comportent de accents et des espaces ’ »Nom de champ »...

 bref, il nous faudrait passer en revue tout un tas de choses indispensables dès lors que vous avez affaire à un « vrai » système de gestion de base de données, normalisé, robuste, interopérable et tout plein de poils.

Mais je laisserai volontairement tout cela de côté, parce qu’il me faudrait, si je m’aventurais dans cette histoire, rallonger encore ce tuto d’un nombre conséquent de vues et d’interminables commentaires (qui se traduisent en autant de pages imprimées) alors qu’il en compte peut-être déjà beaucoup trop.

Là encore, considérons que le présent support n’est qu’une entrée en matière ; n’hésitez pas à poursuivre votre recherche en consultant la doc concernant « OpenOffice.org Base » sur Internet !

Je clique sur « Créer » :

La table apparaît désormais dans l’interface du programme :

Je peux même, en cliquant sur cette option...

… l’afficher directement :

Mais pour l’éditer et, éventuellement, la corriger, je vais utiliser ce bouton « Éditer » :

Apparaît alors une autre fenêtre, qui permet de revenir sur chacun des champs.

En haut, la liste des champs, avec une colonne « Nom de champ » et une autre « Type de champ » et, en bas, les options qu’il est possible de paramétrer pour chacun d’entre eux :

Je vais me contenter de modifier une option sur la clé primaire.

En haut de la fenêtre, je vérifie que c’est bien le champ « Clé primaire » qui est sélectionné puis, en bas, pour « AutoValeur », je choisis « Oui » :

La partie droite de la fenêtre présente une information concernant l’option choisie.

En l’occurrence, « AutoValeur » sur « Oui », signifie que la clé primaire sera « auto-incrémentée ».

Concrètement :

 Pour chaque enregistrement (Titre+Prénom+Nom+adresse, etc.) correspond une clé primaire (un nombre entier)

 À chaque nouvel enregistrement (insertion d’un nouvel adhérent) c’est le programme qui créera automatiquement la nouvelle clé primaire.

D’un clic sur le bouton, j’enregistre la modification et je ferme la fenêtre (CTRL+W).

De retour sur cette fenêtre, je vais, cette fois-ci, double-cliquer directement sur l’intitulé de la table :

Le programme charge alors une nouvelle fenêtre qui ressemble beaucoup à notre feuille de calcul. Remarquez toutefois, que le champ « ID_adherents » (clé primaire) a été ajouté :

Et cela va nous permettre en première approche d’ajouter un nouvel enregistrement à notre table.

À l’aide de l’ascenseur (pas très commode, je le reconnais volontiers, car on a l’impression désagréable de patiner dans le vide) j’affiche la dernière ligne de la table.

C’est vide, à l’exception de la valeur «  » affichée dans mon champ auto-incrémenté « ID_adhérents ».

Je clique dans le champ « Titre »...

… je commence la saisie : « Madame »...

… je complète les autres champs jusqu’au dernier (le n° de téléphone) et je valide l’enregistrement de cette nouvelle adhérente par la touche « Entrée » du clavier...

L’enregistrement est effectué. Le programme a automatiquement créé une clé primaire. C’est tout ce que je voulais vérifier.

J’enregistre ce nouvel enregistrement dans la table par CTRL+S. Je ferme la fenêtre par CTRL+W.

Voilà déjà, première approche, le moyen de compléter votre table directement dans Base.

Il faut reconnaître que c’est plutôt rustique. Pas spécialement convivial.

Si vous deviez mettre en place une méthode beaucoup plus agréable pour traiter vos tables – et le jeu en vaut peut-être la chandelle – sachez que Base propose un environnement mille fois plus adapté : la création de Formulaires.

Et cette histoire-là commence par cette icône :

Quant à moi, je passe le relais à d’autres sources de documentations.

Je quitte le programme (Alt+F4) et, dernière petite vérification d’usage, je navigue jusqu’au fichier de la base, afin de pouvoir l’éditer, si nécessaire :

Mais n’oubliez pas que, désormais, si vous reliez cette nouvelle base à votre document texte, vous pourrez y ajouter directement de nouveaux enregistrements avant de lancer le publipostage :

Publipostage, publipostage...

Bah oui, on fait tout ça pour le publipostage.

Alors, vous préférez quoi : la lettre type ou les étiquettes ?

 

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.