web-dev-qa-db-fra.com

Pourquoi les sauts de ligne Excel ne sont-ils pas transférés dans le Bloc-notes?

Lorsque vous copiez une cellule avec des sauts de ligne dans Excel et que vous la collez dans le Bloc-notes, le texte est collé sur une ligne. Pourquoi donc?

31
Kyle Dixon

Cela est dû à la nature du fonctionnement des tableurs. Imaginez que vous ayez une feuille de calcul remplie de données. Si vous copiez une ligne entière de données puis collez-la dans le Bloc-notes, toutes ces données doivent figurer sur une seule ligne. En effet, si vous copiez et collez une autre ligne de données, celle-ci doit se trouver sur une ligne. S'il y avait des sauts de ligne dans la première ligne que vous avez copiée, les données ne figureraient plus sur deux lignes linéaires. Si vous copiez les données hors du Bloc-notes et les replacez dans la feuille de calcul, le collage ne serait pas correct.

26
Keltari

Cela est vrai lorsque vous utilisez le Bloc-notes, l'éditeur de texte de base de Microsoft déjà préinstallé dans Windows.

Cependant, vous pouvez utiliser un éditeur de texte plus avancé, tel que PSPad ou Notepad ++ (à la fois excellent et gratuit), et vos sauts de ligne sont transférés.

Excel :

 Excel

Cellule marquée, puis copier-coller dans Notepad ++ :

 Notepad++

Même contenu collé dans Notepad (l'éditeur Windows par défaut):

 WindowsNotpad

Notez que dans les deux cas, les guillemets ont été ajoutés automatiquement!

Les meilleurs éditeurs vous offrent également la possibilité d'afficher les caractères de contrôle tels que LineFeed (LF) et CarriageReturn (CR). Dans Notepad ++, cela ressemble à:

 Notepad++withcontrochars

En conclusion: choisissez votre outil en fonction de vos besoins. Si vous avez besoin de conserver les limites de cellule dans l'éditeur, mais que le contenu de la cellule puisse être légèrement modifié, utilisez le Bloc-notes. Si vous souhaitez que le contenu des cellules reste inchangé, y compris les sauts de ligne, et que la reproductibilité 1: 1 des limites des cellules ne soit pas cruciale, utilisez un autre éditeur.

Traitement en masse de ces données

Si vous avez besoin de conserver à la fois les bordures et le contenu des cellules 1: 1, vous risquez de rencontrer des problèmes.

Il y avait peut-être des solutions plus intelligentes, mais dans de tels cas, j’écrivais un petit programme dans n’importe quel langage (VBA, Python ou celui que vous préférez) qui lise le contenu et ajoute des chaînes de caractères de substitution pour les sauts de ligne (quelque chose d'aussi simple que "### Linebreak ###", qui peut ensuite être remplacé par des caractères de contrôle CR et LF. Bien sûr, il s'agit d'un travail fastidieux qui n'a de sens que si vous devez traiter de grandes quantités de Les données.

Vous pouvez également rencontrer des problèmes avec les guillemets ajoutés. Celles-ci peuvent à première vue être utiles pour préserver les limites des cellules même lorsque des sauts de ligne sont inclus. Toutefois, votre cellule peut contenir des guillemets dans le contenu d'origine, ce qui entraîne de nouveaux problèmes. Il existe différentes solutions à cela, mais cela nécessite votre attention.

45

Keltari 's answer donne le raisonnement logique, alors que cette réponse se concentre sur la différence technique.

Il existe trois formes différentes de sauts de ligne utilisés en informatique:

  • Les fins de ligne Unix et macOS 10.0+ utilisent un caractère de saut de ligne (LF)
  • Les fins de ligne Macintosh (antérieure à macOS 10.0) utilisent un caractère de retour à la ligne (CR)
  • Les fins de ligne Windows utilisent une combinaison de caractères de retour-chariot et de caractères de saut de ligne (CRLF)

Cela tient à la façon dont les rédacteurs de caractères travaillent.

Excel utilise une combinaison de ces sauts de ligne pour représenter des cellules comportant plusieurs lignes:

  • Les cellules sont séparées par le caractère Tab.
  • Les lignes sont séparées par les caractères CRLF.
  • Les cellules multilignes séparent chaque ligne en utilisant uniquement le caractère LF.

Cela devient évident lorsque vous enregistrez votre classeur en tant que fichier .txt et que vous l'ouvrez avec un éditeur de texte prenant en charge l'affichage de ces caractères.

 Excel

 Notepad++

Le bloc-notes ne traite que CRLF en tant que sauts de ligne et ignore LF ou CR par eux-mêmes. Ils sont toujours dans le document, mais ne sont en aucun cas visibles.

Remarque: Vous ne verrez pas cela lors du collage, car Notepad ++ ajuste automatiquement les fins de ligne, contrairement à Notepad standard.

34
Worthwelle

Excel utilise LF pour désigner les nouvelles lignes d'une cellule. Le Bloc-notes ne considère pas qu'il s'agisse d'une nouvelle ligne, car Windows utilise en général CRLF pour les nouvelles lignes.

Notepad ++ est plus intelligent que le Notepad relativement simple et interprète donc LF comme une nouvelle ligne également.

1
Benjamin Goodacre