Edición de archivos CSV para no romper datos



Los productos de HFLabs en volúmenes industriales procesan datos: direcciones, nombres completos, detalles de la compañía e incluso un carro en total. Naturalmente, los probadores manejan estos datos todos los días: actualice los casos de prueba, estudie los resultados de la limpieza. A menudo, los clientes dan una base "en vivo" al probador para configurar el servicio.

Lo primero que enseñamos a los nuevos QA es guardar los datos en su forma original. Todo de acuerdo con los pactos: "No hagas daño". En este artículo, le mostraré cómo trabajar cuidadosamente con archivos CSV en Excel y Open Office. Las sugerencias ayudarán a no estropear nada, guardar información después de la edición y, en general, sentirse más seguro.

El material es básico, los profesionales definitivamente se aburrirán.

¿Qué son los archivos CSV?


El formato CSV se usa para almacenar tablas en archivos de texto. Los datos a menudo se empaquetan en tablas, por lo que los archivos CSV son muy populares.


Un archivo CSV consta de filas de datos y delimitadores que indican los límites de las columnas.

CSV significa valores separados por comas: "valores separados por comas". Pero no se deje engañar por el nombre: tanto el punto y coma como las pestañas pueden servir como separadores de columna en un archivo CSV. Seguirá siendo un archivo CSV.

CSV tiene muchas ventajas sobre el mismo formato de Excel: los archivos de texto son simples como un botón, se abren rápidamente, se leen en cualquier dispositivo y en cualquier entorno sin herramientas adicionales.

Debido a sus ventajas, el CSV es un formato de intercambio de datos muy popular, aunque ya tiene 40 años. Los CSV utilizan aplicaciones industriales, descargan datos de bases de datos.

Un problema: un editor de texto para trabajar con CSV no es suficiente. Aún así, si la tabla es simple: en el primer campo, la ID tiene la misma longitud, en el segundo la fecha tiene el mismo formato y en el tercero hay alguna dirección. Pero cuando los campos de diferentes longitudes y hay más de tres, comienza el tormento.


Lleve un registro de los divisores y columnas: rompe los ojos

Peor aún con el análisis de datos: intente Bloc de notas al menos para agregar todos los números en una columna. No estoy hablando de hermosos gráficos.

Por lo tanto, los archivos CSV se analizan y editan en Excel y sus análogos: Open Office , LibreOffice y otros.

Para los veteranos que, sin embargo, leen: chicos, sabemos sobre el análisis directamente en la base de datos usando SQL, sabemos sobre Tableau y Talend Open Studio . Este artículo es para principiantes, pero a nivel básico y una pequeña cantidad de datos de Excel con análogos es suficiente.

Cómo Excel desordena los datos: de los clásicos


Todo estaría bien, pero Excel, apenas abriendo el archivo CSV, comienza sus trucos astutos. Cambia los datos sin demanda para que pierdan su valor. Y lo hace completamente desapercibido. Debido a esto, en un momento tuvimos muchos problemas.

La mayoría de los incidentes se deben al hecho de que el programa convierte cadenas con un conjunto de números en números sin demanda.

Redondea Por ejemplo, en la celda original, dos teléfonos se almacenan separados por comas sin espacios: "5235834.5235835". ¿Qué hará Excel? Convierte famosos números en un número y redondea a dos decimales: "5235834.52". Entonces perdemos el segundo teléfono.

Lleva a la forma exponencial. Excel convierte cuidadosamente "123456789012345" al número "1,2E + 15". Perdemos el valor original por completo.

El problema es relevante para caracteres largos de quince líneas numéricas. Por ejemplo, códigos CLADR (este es un identificador de estado de un objeto de dirección: ciudad, calle, casa).

Elimina las principales ventajas. Excel cree que la ventaja al comienzo de una línea con números es un carácter completamente superfluo. Me gusta, y está tan claro que el número es positivo, ya que no hay un signo menos delante. Por lo tanto, la ventaja principal en el número "+74955235834" se descartará como innecesaria: resultará "74955235834". (En realidad, el número sufrirá aún más, pero para mayor claridad, me llevaré bien con la ventaja).

La pérdida de un plus es crítica, por ejemplo, si los datos van a un sistema de terceros, y ese comprueba rígidamente el formato al importar.

Desglosa tres dígitos. Excel es una buena alma que analizará una cadena digital de más de tres caracteres. Por ejemplo, "8 495 5235834" se convertirá en "84 955 235 834".

El formateo es importante al menos para los números de teléfono: los espacios separan los códigos de país y ciudad del resto del número y entre sí. Excel viola fácilmente la división correcta del teléfono.

Elimina los ceros a la izquierda. Excel convertirá la cadena "00523446" en "523446".
Y en el TIN, por ejemplo, los dos primeros dígitos son el código de región. Para la República de Altai, comienza desde cero - "04". Sin cero, el significado del número se distorsionará y la verificación del formato INN no pasará en absoluto.

Cambia las fechas a la configuración local. Excel con gusto corregirá el número de casa "1/2" a "01. febrero". Debido a que Windows sugirió que en este formulario, es más conveniente que lea las fechas.

Derrotamos la corrupción de datos mediante la importación adecuada


Pero en serio, Excel no tiene la culpa de los problemas, sino una forma no obvia de importar datos al programa.

De forma predeterminada, Excel aplica el tipo General a los datos en el archivo CSV descargado, el tipo general. Por eso, el programa reconoce las cadenas digitales como números. Este orden puede ser derrotado usando la herramienta de importación incorporada.

Comienzo el mecanismo de importación incorporado en Excel. En el menú es "Datos → Obtener datos externos → Del texto".

Selecciono un archivo CSV con datos, se abre un cuadro de diálogo. En el cuadro de diálogo, hago clic en el tipo de archivo Delimitado (delimitado). Codificación: la del archivo generalmente se determina automáticamente. Si la primera línea del archivo es un encabezado, marco "Mis datos tienen encabezados".

Paso al segundo paso del diálogo. Selecciono el separador de campo (generalmente un punto y coma - punto y coma). Desactivo "Tratar delimitadores consecutivos como uno" y configuro "Calificador de texto" en "{none}". (El calificador de texto es un símbolo del principio y el final del texto. Si el separador en el CSV es una coma, entonces el calificador de texto es necesario para distinguir las comas dentro del texto de las comas del separador).

En el tercer paso, elijo el formato de los campos , en aras de todo se inició. Para todas las columnas establezco el tipo en "Texto". Por cierto, si hace clic en la primera columna, mantenga presionado el turno y haga clic en la última, todas las columnas se resaltarán a la vez. Convenientemente

A continuación, Excel le preguntará dónde pegar los datos del CSV: puede hacer clic en "Aceptar" y los datos aparecerán en una hoja abierta.


Debe crear un nuevo libro de trabajo en Excel antes de importar

Pero! Si planeo agregar datos a CSV a través de Excel, hay algo más que hacer.

Después de la importación, es necesario forzar todas las celdas de la hoja al formato "Texto". De lo contrario, los nuevos campos adquirirán el mismo tipo General.

  • Presiono Ctrl + A dos veces, Excel selecciona todas las celdas de la hoja;
  • Hago clic con el botón derecho del mouse;
  • Selecciono "Formatear celdas" en el menú contextual;
  • en el cuadro de diálogo que se abre, seleccione el tipo de datos de Texto a la izquierda.


Para seleccionar todas las celdas, debe presionar Ctrl + A dos veces. Exactamente dos, esto no es una broma, prueba

Después de eso, con suerte, Excel dejará solo los datos originales. Pero esta no es la garantía más difícil, por lo que después de guardar, definitivamente revisaremos el archivo a través de un visor de texto.

Alternativa: Open Office Calc


Para trabajar con archivos CSV, uso Calc. No es que no considere los datos digitales como cadenas en absoluto, pero al menos no les aplica el reformateo de acuerdo con la configuración regional de Windows. Sí, y la importación es más simple.

Por supuesto, necesitará el paquete Open Office (OO). Durante la instalación, ofrecerá reasignar archivos de MS Office a sí mismo. No lo recomiendo: aunque OO es bastante funcional, no comprende completamente el complicado formato de documentos de Microsoft.

Pero hacer que OO sea el programa predeterminado para los archivos CSV es bastante razonable. Puede hacer esto después de instalar el paquete.

Entonces, comenzamos la importación de datos desde CSV. Después de hacer doble clic en el archivo, Open Office muestra un cuadro de diálogo.


Tenga en cuenta que en OO no necesita crear un nuevo libro de trabajo y forzar que se inicie la importación, todo por sí mismo

  1. Codificación: como en el archivo.
  2. "Separador" es un punto y coma. Naturalmente, si es precisamente el separador en el archivo.
  3. "Separador de texto": vacío (todo lo mismo que en Excel).
  4. En la sección "Campos", hago clic en el cuadrado superior izquierdo de la tabla, todas las columnas están resaltadas. Indico el tipo de "Texto".

Algo que echó a perder mucha sangre: si selecciona erróneamente varios separadores de campo o se divide el texto incorrecto, el archivo puede abrirse correctamente, pero puede guardarse incorrectamente.

Además de Calc, libreOffice es popular en HFLabs, especialmente en Linux. Ambos se usan más activamente para CSV que Excel.

Bonus track: problemas al guardar de Calc a .xlsx


Si guarda datos de Calc en formato Excel .xlsx, tenga en cuenta: OO a veces inexplicablemente y a gran escala pierde datos.


El páramo blanco en el medio está lleno de datos en el archivo CSV original

Por lo tanto, después de guardar, abro el archivo nuevamente y me aseguro de que los datos estén en su lugar.

Si se pierde algo, el tratamiento consiste en salvar de CSV a .xlsx. O, si Windows está instalado, importe desde CSV a Excel y guarde desde allí.

Después de volver a guardar, definitivamente comprobaré una vez más que todos los datos están en su lugar y que no hay líneas vacías adicionales.

Si está interesado en trabajar con datos, consulte nuestras vacantes . HFLabs casi siempre necesita analistas, probadores, ingenieros de implementación, desarrolladores. Proporcionaremos datos para que parezca poco :)

Source: https://habr.com/ru/post/es432906/


All Articles