Importar desde un archivo de texto delimitado por tabulaciones en Excel: se ignora el carácter CR en las comillas


1

Tengo un TXTarchivo grande delimitado con TAB.
El texto está entre comillas, pero Excel aún divide los valores en dos filas cuando aparece un carácter CR dentro de la cadena encapsulada.

¿Hay alguna forma de obligar a Excel a no romper líneas?


¿Tal vez podría proporcionar una captura de pantalla del problema y, posiblemente, qué resultado espera?
piko

@piko GDPR ... Los datos en cuestión son la dirección de uno de los clientes, hasta el lugar seguro para las entregas. Intentará desinfectarlo, pero también podría escribirlo todo, ya que será básicamente lo mismo.
AcePL

1
por supuesto, no publique información real;) Además, es posible que desee verificar estas preguntas similares . Se han dado varias soluciones, ¿tal vez una podría satisfacer su necesidad? Aunque está destinado a un archivo CSV y no a un archivo TXT, pero dado que ambos formatos son similares ... También puede convertir fácilmente su TXT a un CSV, lo que sería más fácil de trabajar en Excel.
piko

Respuestas:


1

La siguiente respuesta destaca en parte el problema.

Como J Ashley señala correctamente, hay una diferencia entre cómo Excel maneja el archivo CSV al hacer doble clic en vs Archivo-> Abrir (o Datos-> importar).

Además del comentario de J Ashley, probé y concluí lo siguiente:

  • Cuando los campos encapsulados contienen \ n (LF) o \ r \ n (CR-LF), se abren correctamente al hacer doble clic, pero producen el problema mencionado por OP al usar Archivo-> Abrir (o importar)
  • Cuando los campos encapsulados contienen \ r (CR) producen el problema mencionado por OP sin importar lo que haga. Usando UTF8-BOM, Sin bom, doble clic, Archivo-> Abrir, Datos-> Importar ... siempre el mismo problema.

Por lo tanto, no parece haber ninguna forma de solucionar este problema desde Excel.

Posible solución
Haga una búsqueda / reemplazo de expresiones regulares en su archivo para cambiar '\ r ([^ \ n])' a '\ n \ 1'. Esto cambia todos los CR que no son seguidos por un LF en un LF. El \ 1 es solo para preservar el carácter final.

Problemas finales
Excel me sigue sorprendiendo de maneras misteriosas en cuanto a lo arbitrario que es manejar archivos de datos de texto sin proporcionar comentarios al usuario ... Por otra parte, la mayoría de los usuarios se sentirían abrumados y confundidos por la idea de que los archivos de texto sin formato no son archivos de Excel .

Editar: secuencia de comandos Powershell para buscar reemplazar en archivos enormes

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
Get-Content -Encoding UTF8 -ReadCount 1000 input.txt |
     Foreach-Object { 
        [System.IO.File]::AppendAllLines(
              [string]'output.txt'
            , [string[]]($_) // TODO: add regex replacement here
        ) 
    }

Desafortunadamente, editar el txtarchivo es difícil ya que es muy grande. En realidad, hay varios, pero el tamaño varía entre 1 y 10 GB y puede contener entre 500k y 12M de filas. La mayoría de los editores de texto se resisten al tamaño.
AcePL

Ah, también tengo archivos enormes como ese. He adjuntado un script de PowerShell que puede lidiar con eso.
Wouter
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.