¿Cómo evitar las comillas dobles al guardar el archivo de Excel como Unicode?

9

Tengo un archivo de Excel con contenido Unicode del cual algunas celdas contienen texto dentro de comillas dobles, por ejemplo "text".

Cuando guardo el archivo de Excel en un archivo de texto en formato Unicode, el texto que contiene la comilla doble se guarda como tres comillas dobles, por ejemplo """text""".

Hay algunos lugares donde incluso tengo texto que contiene comas (,). Por ejemplo, text,que se convierte "text,"en el archivo Unicode. Está agregando comillas dobles al texto, que supongo que contiene caracteres especiales.

¿Cómo puedo evitar esto?

karthik
fuente

Respuestas:

7

Este es un comportamiento estándar (y similar a la forma en que se guardan los archivos CSV). Consulte el RFC 4180 - Formato común y tipo MIME para archivos de valores separados por comas (CSV) :

Si se utilizan comillas dobles para encerrar los campos, se debe escapar una comilla doble que aparezca dentro de un campo precediéndola con otra comilla doble.

¿Cómo se aplica eso a su caso?

  • Esto significa que "Text" debe guardarse como """Text""", las comillas externas que delimitan el campo, y las otras dos comillas se usan para escapar de las comillas reales que usó para su campo de texto. De "Text"lo contrario, solo se analizaría como Texty perdería sus cotizaciones al volver a abrir el archivo.

  • Excel también elige cotizar Text,, porque la coma se usa como delimitador en archivos separados por comas, y no incluirla entre comillas significaría que text,se analiza como dos campos cuando vuelve a abrir el archivo.

Si no los quiere en su salida, considere abrir los archivos resultantes en un editor de texto y eliminar todas las comillas con una simple búsqueda y reemplazo.

slhck
fuente
2
Quiere decir que no hay otra manera de resolver el problema que no sea reemplazarlos en el editor de texto.
karthik
En realidad no, ya que Excel tiene que hacerlo por razones de compatibilidad. Tal vez sea posible crear una Macro que haga una exportación personalizada, pero no soy un experto en esto.
slhck
Ok, gracias. Intentaré reemplazarlo en el lado de codificación.
karthik
@slhck: Estoy frente cuestión mientras que el ahorro de Unicode como CSV en 2010 superuser.com/q/1210099/234380
NJMR
3

Yo tuve este problema también. Entonces, noté que estaba pasando por alto la opción Guardar como tipo: " Texto con formato (delimitado por espacios) ". También debe especificar el. extensión txt , o será por defecto con una extensión .prn. Por ejemplo, filename.txt en lugar de solo filename. Probarlo . Funciona .

Jeff Byington
fuente
Se delimitará el espacio en lugar de la delimitación de tabulación, y las columnas parecen tener un ancho limitado a unos 8 caracteres de forma predeterminada.
JosiahYoder-deactive excepto ...
Esto no funciona si las celdas contienen algo así "A short sentence". La respuesta de Pete a continuación es la única que funcionó para mí.
Micah Lindström
2

Guardar en Unicode parecía agregar comillas incluso cuando no había comillas en mi cadena. Así es como lo solucioné:

  1. Encuentra una cadena que no esté en tu archivo (yo solía xxx).
  2. Antes de exportar, Buscar y reemplazar todas las comillas dobles "conxxx
  3. Exporte su archivo a txt o csv.
  4. Abra archivos txt y busque y reemplace todas las comillas sin nada
  5. Buscar y reemplazar todo xxxcon comillas
Pete
fuente
Nota, replacementno usar 'replacement'. Reemplazar las comillas dobles por algo que incluya una comilla simple causa problemas si sucede al comienzo de una celda. Básicamente, Excel ve una comilla simple al comienzo de una celda que significa interpretarla como texto, por lo que se elimina cuando exporta a txt / csv. Descubrí esto de la manera difícil jajaja.
Micah Lindström
0

Simplemente guarde fácilmente su archivo como delimitado por espacio.prn en Excel y luego cámbiele el nombre a .txt. Usé esto para una crisis de 18000 filas. ;)

Salar Lotfee
fuente