Transfert feuille Calc vers table Base. Problème des CR LF.

Bonjour,

Je transfère par copier coller une feuille Calc dans une table Base.

L’un des champs de la feuille Calc est de type CHAR et contient des fin de ligne au format CRLF.

A l’arrivée la table Base ne contient plus ces fin de ligne.

C’est exactement pendant la copie de Calc vers Base que les CRLF sont effacés. (effacés et non masqués !)

Or une table Base ne permet pas de régler les propriétés Multiligne et Fin de ligne CRLF …

Je ne vois pas de solution et pourtant on peut garder les CRLF selon ask.libreoffice anglais …

Si quelqu’un a une solution …

Bonjour

Je reproduis le problème lorsque les retours à la ligne sont entrés dans les cellules avec Ctrl+Entrée.

En revanche, le retour à la ligne provoqué par le FormatageRenvoi à la ligne automatique est contre-intuitivement préservé lors du copier-coller vers Base…

J’ai trouvé un contournement mais il est assez lourd :

  • enregistrement des données du classeur au format csv
  • création d’une table “liée” (attachée) au format texte dans la base Hsqldb
  • définition du csv comme source de la table

Il est ensuite possible de copier les données de la table attachée dans la table “normale” dans laquelle on a défini le champ comme LONGVARCHAR et les CRLF sont préservés. On peut ensuite supprimer la table “texte”.

J’ai décrit la gestion des tables “texte” attachées dans cette FAQ.

La création d’un champ LONGVARCHAR se fait comme ceci :

CREATE TEXT TABLE  "TableCRLF" ("ID" INTEGER GENERATED BY DEFAULT AS IDENTITY, "Texte" LONGVARCHAR)

Cordialement

D’abord merci !

J’ai suivi les instructions et après à peine une dizaine d’essais je suis arrivé à transférer mes données en conservant les codes CRLF. Récapitulatif:

enregistrer les données au format .csv (sans la ligne des noms de colonnes sinon ca plante)
créer la table liée au fichier .csv en passant par Outils/SQL avec CREATE ...
créer une table Base de même format que la table liée
copier la table liée et la coller dans la table crée

Donc ca marche.

Il y a juste un léger problème: ma table provient d’Access et je l’exporte en csv au format utf-8.

Or à l’arrivée dans la table Base les données contiennent bien CRLF mais les accents sont remplacés par des doubles graphiques, ce qui semble indiquer que j’ai perdu utf-8 en route !

Je crains de devoir abuser, mais est ce que je pourrais avoir un indice sur le moyen de contrôler le format utf8 jusqu’à la table Base ?

Rectification: Je vois dans le manuel HSQL l’option encoding=UTF-8 … au temps pour moi ! :slight_smile: