Quando si copia una cella con interruzioni di riga in Excel e si incolla in Blocco note, il testo viene incollato su una riga. Perché?
Quando si copia una cella con interruzioni di riga in Excel e si incolla in Blocco note, il testo viene incollato su una riga. Perché?
Risposte:
È dovuto alla natura di come funzionano i fogli di calcolo. Immagina di avere un foglio di calcolo pieno di dati. Se dovessi copiare un'intera riga di dati, quindi incollarli in Blocco note, tutti questi dati devono trovarsi su una riga. Questo perché se dovessi copiare un'altra riga di dati e incollarli, la riga successiva di dati deve trovarsi su una riga. Se ci fossero interruzioni di riga nella prima riga copiata, i dati non sarebbero più in due righe lineari. Se dovessi copiare i dati da Blocco note e reinserirli nel foglio di calcolo, non verranno incollati correttamente.
Alt+Enter
), viene inserito solo 0xA, non l'intero 0xD 0xA, che significa LF
invece di CR/LF
. Excel lo interpreta e mostra l'interruzione di riga, mentre il semplice blocco note non lo fa, perché si aspetta CR/LF
. È una differenza nei formati che viene rilevata più di un bug, ma è comunque questa la ragione corretta.
Questo è vero quando si utilizza Blocco note, che è l'editor di testo di base di Microsoft che è già preinstallato in Windows.
Tuttavia, puoi utilizzare un editor di testo più avanzato come PSPad o Notepad ++ (sia eccellente che gratuito) e puoi trasferire le interruzioni di riga.
Excel :
Cella contrassegnata, quindi copia e incolla in Notepad ++ :
Stesso contenuto incollato nel Blocco note (l'editor predefinito di Windows):
Si noti che in entrambi i casi, le virgolette sono state aggiunte automaticamente!
I migliori editor ti danno anche la possibilità di visualizzare i caratteri di controllo come LineFeed (LF) e CarriageReturn (CR). In Notepad ++ sembra che:
In conclusione: scegli il tuo strumento in base alle tue esigenze. Se hai bisogno di conservare i limiti delle celle nell'editor, ma il contenuto delle celle può essere leggermente modificato, usa Blocco note. Se hai bisogno che i contenuti delle celle non vengano toccati, comprese le interruzioni di riga, e la riproducibilità 1: 1 dei limiti delle celle non sia cruciale, usa un altro editor.
Elaborazione di massa di tali dati
Se è necessario conservare contemporaneamente i bordi delle celle e il contenuto delle celle 1: 1, è possibile che si verifichino problemi.
Potrebbero esserci soluzioni più intelligenti, ma ciò che ho fatto in questi casi è stato scrivere un piccolo programma in qualsiasi lingua (VBA, Python o qualunque cosa ti piaccia di più) che legge i contenuti e aggiunge stringhe segnaposto per le interruzioni di riga (qualcosa di semplice come "### Linebreak ###", che può essere successivamente sostituito da caratteri di controllo CR e LF. Naturalmente, questo funziona in modo complicato e ha senso solo se devi elaborare grandi quantità di dati.
È possibile che si verifichino problemi anche con le virgolette aggiunte. A prima vista, questi possono essere utili per preservare i confini delle celle anche quando sono incluse le interruzioni di riga. Tuttavia, la cella potrebbe contenere virgolette una parte del contenuto originale e quindi si verificano nuovi problemi. Ci sono varie soluzioni a questo, quindi, ma ha bisogno della tua attenzione.
CR
LF
che in realtà c'è perché vede LF
e presuppone che dovrebbe essere un pieno CR
LF
e lo converte.
La risposta di Keltari fornisce il ragionamento logico, mentre questa risposta si concentra sulla differenza tecnica.
Esistono tre diverse forme di interruzioni di riga in uso nell'informatica:
LF
)CR
)CRLF
)Questo è un ostacolo al modo in cui funzionano gli scrittori di tipi.
Excel utilizza una combinazione di queste interruzioni di riga per rappresentare celle con più righe:
Tab
carattere.CRLF
personaggi.LF
carattere.Ciò diventa evidente quando si salva la cartella di lavoro come .txt
file e la si apre con un editor di testo che supporta la visualizzazione di questi caratteri.
Blocco note viene elaborato solo CRLF
come newline e ignora LF
o CR
da solo. Sono ancora nel documento, ma non sono visibili in alcun modo.
Nota: questo non viene visualizzato quando si incolla avanti e indietro, poiché Notepad ++ regola automaticamente le terminazioni di linea, mentre il normale Blocco note no.
LF
è ancora presente quando incollato nel blocco note, il blocco note semplicemente non lo visualizza visibilmente. (Rende effettivamente uguale a uno spazio di larghezza zero.) Pertanto, la copia dei dati incollati dal blocco note in Excel include queste interruzioni di riga (anche se Excel non ridimensiona automaticamente le righe su di esse).
CRLF
.
="A"&CHAR(13)&CHAR(10)&"B"
. Le interruzioni di riga prodotte dalle formule non sono visibili in Excel, ma funzionano bene se copiate e incollate tramite "valori incolla". Un valore incollato dalla digitazione manuale "A<CRLF>B"
del blocco note e dalla copia manterrà anche il CRLF.
LF
rapidamente leggibili file di testo con EOL. cioè Trova un LF
carattere, selezionarlo, Ctrl
+ C
, Ctrl
+ Home
, Ctrl
+ F
, Ctrl
+ V
, Enter
, Esc
, Enter
. Quindi più volte F3
, Enter
fino alla fine. [Modifica: <kbd> non funziona nei commenti?]
Excel utilizza LF per indicare nuove linee all'interno di una cella. Blocco note non considera questa una nuova riga poiché Windows in generale utilizza CRLF per le nuove righe.
Notepad ++ è più intelligente del relativamente semplice Notepad e interpreta quindi anche LF come una nuova linea.
"
e Notepad ++ normalizzerà tutte le terminazioni di linea in modo che corrispondano. Vedi qui . Se invece salvi come .txt
e apri in Notepad ++, le celle multilinea avranno LF
solo. Vedi qui .