2010-01-26 14 views
5

Por lo que puedo ver OpenOffice, cuando se trata de guardar un archivo como un archivo csv, encierra todas las cadenas en caracteres de comillas.Openoffice - CSV-export: ¿hay un escape-charcter predeterminado?

¿Hay alguna necesidad de un personaje de escape?

y en relación con esta pregunta:

¿Se OpenOffice tienen un carácter de escape predeterminado?

+1

Esto realmente no está relacionado con la programación. En csv, la cita es el carácter de escape: "mi nombre es" "fred" "" –

+1

CSV Realmente no tiene caracteres de escape. Si un campo contiene una coma, debe citarse, y si contiene una cita, el campo debe citarse como debe la cita: "una sola" "cita" es un campo que contiene tres palabras y una sola comilla. El estándar CSV (tal como es) no reconoce cosas como \ ". –

Respuesta

3

Escapar entre comillas hace la vida más fácil para las herramientas de análisis del archivo CSV.

4

También me pregunto si hay una manera de elegir el carácter de escape al guardar OpenOffice como csv. phpmyadmin no aceptaba una columna spreadsheed de columna de más de 9,000 líneas en formato .ods y no parece haber una manera de elegir el carácter de escape al guardar como CSV.

Así que tuve que guardar como csv, abrir en word, y usar algunos trucos de buscar/reemplazar para cambiar el carácter de escape a \ (barra invertida). El valor predeterminado es utilizar comillas dobles para evitar comillas dobles, y phpmyadmin no aceptará ese formato.

Para convertir correctamente el archivo a utilizar \ (barra invertida) para escapar de las comillas dobles, lo que tiene que hacer esto:

  1. Escoja una cadena de caracteres comodín, por ejemplo, 'abcdefg', que hace que no ocurra en ninguna parte en el csv.
  2. Buscar/reemplazar "" "(tres comillas dobles en una fila) con el marcador de posición. Esto es para evitar resultados posiblemente incorrectos en el siguiente paso
  3. Buscar/reemplazar" "(dos comillas en una fila, que representa una cita que debe escaparse), con \ "(comilla doble hacia atrás). Si lo hizo sin encontrar/reemplazar "" "es concebible que pueda obtener un resultado como" \ "en lugar de \" ". Mejor prevenir que lamentar
  4. Buscar/reemplazar el marcador de posición con \" "(barra diagonal inversa comillas dobles)

Eso funcionará, a menos que tenga más de una comilla doble en una fila en los campos de texto originales, lo que daría como resultado hasta cinco comillas dobles en una fila en el archivo .ods o .xlsx csv resultante (dos comillas dobles para cada comilla doble escapada, más otra comilla doble si está al final del campo).

0

En una versión reciente de LibreOffice (3.4. 4), la exportación CSV no se manejó correctamente por phpMyAdmin. Como LibreOffice no proporciona un carácter de escape, la característica de importación "CSV" predeterminada de phpMyAdmin "Columnas escapadas con:" no funcionó bien. La información siempre fue inconsistente.

Sin embargo, utilizando la opción CSV usando LOAD DATA hizo el trabajo, sólo si se eliminó el valor en Columnas escapado por opción. Supongo que phpMyAdmin utiliza el comando predeterminado LOAD DATA de MySQL y, por lo tanto, el control pasa a MySQL para el procesamiento de datos. En mi caso, resultó en una importación de datos precisa.

Cuestiones relacionadas