Evitar que Excel convierta automáticamente ciertos valores de texto a fechas


¿Alguien sabe si hay un token que puedo agregar a mi csv para un campo determinado para que Excel no intente convertirlo a una fecha?

Estoy tratando de escribir un .archivo csv de mi aplicación y uno de los valores pasa a parecerse lo suficiente a una fecha que Excel está convirtiendo automáticamente de texto a una fecha. He intentado poner todos mis campos de texto (incluido el que parece una fecha) entre comillas dobles, pero eso no tiene efecto.

Author: JimmyPena, 2008-10-03

30 answers

He encontrado que poner un '=' antes de las comillas dobles logrará lo que desea. Obliga a que los datos sean texto.

Eg. ="2008-10-03", = "más texto"

EDITAR (de acuerdo con otros posts): debido al error de Excel 2007 observado por Jeffiekins uno debe usar la solución propuesta por Andrew: "=""2008-10-03"""

 301
Author: Jarod Elliott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:33:26

Sé que esta es una vieja pregunta, pero el problema no va a desaparecer pronto. Los archivos CSV son fáciles de generar a partir de la mayoría de los lenguajes de programación, bastante pequeños, legibles por humanos en un momento crítico con un editor de texto sin formato y ubicuos.

El problema no es solo con fechas en los campos de texto, sino que cualquier cosa numérica también se convierte de texto a números. Un par de ejemplos donde esto es problemático:

  • Código postal
  • teléfono números
  • números de identificación del gobierno

Que a veces puede comenzar con uno o más ceros (0), que se desechan cuando se convierten a numérico. O el valor contiene caracteres que pueden confundirse con operadores matemáticos (como en fechas: /, -).

Dos casos en los que puedo pensar que la solución " prepending =", como se mencionó anteriormente, podría no ser ideal es

  • donde el archivo podría importarse a un programa que no sea MS Excel (La función de combinación de correspondencia de MS Word viene a la mente),
  • donde la legibilidad humana podría ser importante.

Mi truco para trabajar alrededor de esto

Si uno pre/añade un carácter no numérico y/o sin fecha en el valor, el valor se reconocerá como texto y no se convertirá. Un carácter no imprimible sería bueno ya que no alterará el valor mostrado. Sin embargo, el antiguo carácter de espacio simple (\s, ASCII 32) no funciona para esto, ya que Excel lo corta y luego el valor todavía se convierte. Pero hay varios otros caracteres de espacio de impresión y no impresión que funcionarán bien. Lo más fácil sin embargo es añadir (añadir después) el carácter de tabulación simple (\t, ASCII 9).

Beneficios de este enfoque:

  • Disponible desde el teclado o con un código ASCII fácil de recordar (9),
  • No molesta la importación, {[12]]}
  • Normalmente no molesta los resultados de la fusión de correspondencia (dependiendo de la plantilla diseño-pero normalmente solo agrega un amplio espacio al final de una línea). (Sin embargo, si esto es un problema, mire otros caracteres, por ejemplo, el espacio de ancho cero (ZWSP, Unicode U+200B)
  • no es un gran obstáculo al ver el CSV en el bloc de notas (etc),
  • y podría eliminarse mediante buscar / reemplazar en Excel (o Bloc de notas, etc.).
  • No necesita importar el CSV, sino que simplemente puede hacer doble clic para abrir el CSV en Excel.

Si hay una razón por la que no si desea utilizar la pestaña, busque en una tabla Unicode algo más adecuado.

Otra opción

Podría ser para generar archivos XML, para los que un cierto formato también es aceptado para la importación por las versiones más recientes de MS Excel, y que permite muchas más opciones similares a .Formato XLS, pero no tengo experiencia con esto.

Así que hay varias opciones. Dependiendo de sus requisitos / aplicación, uno podría ser mejor que otro.


Adición

Hay que decir que las versiones más recientes (2013+) de MS Excel no abren el CSV en formato de hoja de cálculo más - un speedbump más en el flujo de trabajo de uno haciendo Excel menos útil... Al menos, existen instrucciones para sortearlo. Vea, por ejemplo, este Stackoverflow: Cómo mostrar correctamente .archivos CSV dentro de Excel 2013? .

 113
Author: fr13d,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-25 11:24:37

Trabajando fuera de la solución de Jarod y el problema planteado por Jeffiekins, podría modificar

"May 16, 2011"

A

"=""May 16, 2011"""
 95
Author: Andrew Ferk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-16 21:48:35

Tuve un problema similar y esta es la solución que me ayudó sin tener que editar el contenido del archivo csv:

Si tiene la flexibilidad de nombrar el archivo con otro nombre que no sea ".csv", se puede nombrar con un".txt " extensión, como "Myfile.txt "o" Myfile.csv.txt". Luego, cuando lo abra en Excel (no arrastrando y soltando, sino usando Archivo->Abrir o la lista de archivos Más Reciente), Excel le proporcionará un "Asistente de importación de texto".

En la primera página del asistente, elija "Delimitado" para el tipo de archivo.

En la segunda página del asistente elija "," como delimitador y también elija el calificador de texto si ha rodeado sus valores por comillas

En la tercera página, seleccione cada columna individualmente y asigne a cada una el tipo "Texto" en lugar de "General" para evitar que Excel interfiera con sus datos.

¡Espero que esto le ayude a usted o a alguien con un problema similar!

 52
Author: rainerbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-21 05:06:50

ADVERTENCIA: Excel '07 (al menos) tiene un(otro) error: si hay una coma en el contenido de un campo, no analiza correctamente el ="campo, contenido", sino que pone todo después de la coma en el siguiente campo, independientemente de las comillas.

La única solución que he encontrado que funciona es eliminar el = cuando el contenido del campo incluye una coma.

Esto puede significar que hay algunos campos que son imposibles de representar exactamente "correcto" en Excel, pero ahora Confío en que nadie se sorprenda demasiado.

 27
Author: Jeffiekins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-10 19:58:59

Al crear la cadena que se escribirá en mi archivo CSV en C# tuve que formatearla de esta manera:

"=\"" + myVariable + "\""
 16
Author: Colin Pear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-21 13:09:04

En Excel 2010 abra una nueva hoja. En la cinta de Datos, haga clic en "Obtener datos externos de texto". Seleccione su archivo CSV y haga clic en "Abrir". Haga clic en "Siguiente". Desmarque "Tab", coloque una marca de verificación junto a" Coma", luego haga clic en"Siguiente". Haga clic en cualquier lugar de la primera columna. Mientras mantiene presionada la tecla mayús, arrastre el control deslizante hasta que pueda hacer clic en la última columna, luego suelte la tecla mayús. Haga clic en el botón de opción" texto "y luego haga clic en"Finalizar"

Todas las columnas se importarán como texto, tal como estaban en el Archivo CSV.

 15
Author: Rob Stockley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-06 21:15:58

Sigue siendo un problema en la versión de Microsoft Office 2016, bastante inquietante para aquellos de nosotros que trabajamos con nombres genéticos como MARC1, MARCH1, SEPT1, etc. La solución que he encontrado es la más práctica después de generar un".csv " archivo en R, que luego se abrirá / compartirá con los usuarios de Excel:

  1. Abra el archivo CSV como texto (bloc de notas)
  2. Cópialo (ctrl+a, ctrl+c).
  3. Péguelo en una nueva hoja de Excel: todo se pegará en una columna como cadenas de texto largas.
  4. Elija / seleccione esto columna.
  5. Vaya a Datos- "Texto a columnas...", en la ventana abierta elija "delimitado" (siguiente). Compruebe que "coma" está marcado (marcándolo ya mostrará la separación de los datos a las columnas de abajo) (siguiente), en esta ventana puede elegir la columna que desea y marcarla como texto (en lugar de general) (Finish).

HTH

 13
Author: Ana Maria Mendes-Pereira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-02 14:51:46

Aquí está el método simple que usamos en el trabajo aquí al generar el archivo csv en primer lugar, cambia un poco los valores por lo que no es adecuado en todas las aplicaciones:

Anteponer un espacio a todos los valores del csv

Excel eliminará este espacio de números como "1"," 2.3" y "-2.9e4", pero permanecerá en fechas como "01/10/1993" y booleanos como "TRUE", evitando que se conviertan en tipos de datos internos de excel.

También se detiene doble las comillas se zappean al leerlas, por lo que una forma infalible de hacer que el texto en un csv permanezca sin cambios por excel INCLUSO SI es un texto como "3.1415" es rodearlo con comillas dobles y anteponer toda la cadena con un espacio, es decir (usando comillas simples para mostrar lo que escribiría) ' "3.1415"'. Luego, en Excel siempre tiene la cadena original, excepto que está rodeada de comillas dobles y precedida por un espacio, por lo que debe tener en cuenta esas en cualquier fórmula, etc.

 9
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 18:31:46

(Suponiendo Excel 2003...)

Al usar el Asistente de Texto a columnas, en el paso 3 puede dictar el tipo de datos para cada una de las columnas. Haga clic en la columna en la vista previa y cambie la columna de mal comportamiento de "General" a "Texto."

 8
Author: DocMax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-02 23:34:08

Esta es la única manera que conozco de lograr esto sin meterme dentro del archivo en sí. Como de costumbre con Excel, aprendí esto golpeando mi cabeza en el escritorio durante horas.

Cambiar el .extensión de archivo csv to .txt; esto evitará que Excel convierta automáticamente el archivo cuando se abra. Así es como lo hago: abra Excel en una hoja de trabajo en blanco, cierre la hoja en blanco, luego File => Open y elija su archivo con el .extensión txt. Esto obliga a Excel a abrir el "Asistente de importación de texto" donde hacerle preguntas sobre cómo desea que interprete el archivo. Primero elige tu delimitador (coma, tabulador, etc.)...), luego (aquí está la parte importante) elige un conjunto de columnas de columnas y selecciona el formato. Si desea exactamente lo que hay en el archivo, elija "Texto" y Excel mostrará lo que hay entre los delimitadores.

 8
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-04 05:06:53

(EXCEL 2007 y posteriores)

Cómo forzar a excel a no "detectar" formatos de fecha sin editar el archivo de origen

O bien:

  • cambie el nombre del archivo como .txt
  • Si no puede hacer eso, en lugar de abrir el archivo CSV directamente en excel, cree un nuevo libro de trabajo y luego vaya a
    Data > Get external data > From Text
    y selecciona tu CSV.

De cualquier manera, se le presentarán opciones de importación, simplemente seleccione cada columna que contenga fechas y dígale a excel que formatee como "texto" no "general".

 4
Author: Some_Guy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-17 09:39:27

No es el Excel. Windows reconoce la fórmula, los datos como una fecha y corrige automáticamente. Tienes que cambiar la configuración de Windows.

"Panel de control" (- >"Cambiar a Vista Clásica") - > " Regional e idioma Opciones" -> pestaña "Opciones Regionales" -> "Personalizar..."-> pestaña "Números" -> Y luego cambia los símbolos de acuerdo a lo que quieras.

Http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

Funcionará en su computadora, si estos ajustes no se cambian, por ejemplo, en la computadora de sus clientes, verán fechas en lugar de datos.

 3
Author: syandras,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-08 11:51:32

Esta semana he encontrado esta convención, que parece ser un excelente enfoque, pero no puedo encontrar referencias en ninguna parte. ¿Alguien está familiarizado con él? ¿Puedes citar una fuente para ello? No he buscado durante horas y horas, pero espero que alguien reconozca este enfoque.

Ejemplo 1: =("012345678905") muestra como 012345678905

Ejemplo 2: =("1954-12-12") se muestra como 1954-12-12, no 12/12/1954.

 2
Author: GW4,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-13 00:34:45

Hola tengo el mismo problema,

Escribo este vbscipt para crear otro archivo CSV. El nuevo archivo CSV tendrá un espacio en la fuente de cada campo, por lo que excel lo entenderá como texto.

Así que se crea un.archivo vbs con el siguiente código (por ejemplo Modify_CSV.vbs), guardar y cerrar. Arrastre y suelte su archivo original en su archivo vbscript. Creará un nuevo archivo con "SPACE_ADDED" al nombre del archivo en la misma ubicación.

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing
 2
Author: Harry Duong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-27 17:47:33

Sin modificar su archivo csv puede:

  1. Cambie la opción de celdas de formato de excel a "texto"
  2. Luego use el "Asistente de importación de texto" para definir las celdas csv.
  3. Una vez importados eliminar esos datos
  4. luego solo pega como texto sin formato

Excel formateará y separará correctamente sus celdas CSV como texto formateado ignorando los formatos de fecha automática.

Una especie de trabajo tonto alrededor, pero es mejor que modificar los datos csv antes de importar. Andy Baird y Richard eludió este método, pero se perdió un par de pasos importantes.

 2
Author: cliffclof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-30 19:00:02

Lo que he hecho para este mismo problema fue agregar lo siguiente antes de cada valor csv: "=""" y una comilla doble después de cada valor CSV, antes de abrir el archivo en Excel. Tome los siguientes valores por ejemplo:

012345,00198475

Estos deben ser alterados antes de abrir en Excel a:

"="""012345","="""00198475"

Después de hacer esto, cada valor de celda aparece como una fórmula en Excel y, por lo tanto, no se formateará como un número, fecha, etc. Por ejemplo, un valor de 012345 aparece como:

="012345"
 2
Author: ChrisB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-08 01:12:13

Ninguna de las soluciones ofrecidas aquí es una buena solución. Puede funcionar para casos individuales, pero solo si tienes el control de la pantalla final. Tomemos mi ejemplo: mi trabajo produce una lista de productos que venden al por menor. Esto está en formato CSV y contiene códigos de parte, algunos de ellos comienzan con cero, establecidos por los fabricantes (no bajo nuestro control). Quite los ceros principales y usted puede emparejar realmente otro producto. Los clientes minoristas quieren la lista en formato CSV debido al procesamiento de back-end programas, que también están fuera de nuestro control y diferentes por cliente, por lo que no podemos cambiar el formato de los archivos CSV. Sin prefijo'=', ni pestañas añadidas. Los datos en los archivos CSV sin procesar son correctos; es cuando los clientes abren esos archivos en Excel que comienzan los problemas. Y muchos clientes no son realmente conocedores de la informática. Pueden abrir y guardar un archivo adjunto de correo electrónico. Estamos pensando en proporcionar los datos en dos formatos ligeramente diferentes: uno como Excel Friendly (utilizando las opciones sugeridas anteriormente por añadiendo una PESTAÑA, la otra como el 'maestro'. Pero esto puede ser una ilusión, ya que algunos clientes no entenderán por qué necesitamos hacer esto. Mientras tanto, seguimos explicando por qué a veces ven datos 'incorrectos' en sus hojas de cálculo. Hasta que Microsoft haga un cambio adecuado, no veo una resolución adecuada para esto, siempre y cuando uno no tenga control sobre cómo los usuarios finales usan los archivos.

 2
Author: mljm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-30 10:59:29

Sé que este es un hilo viejo. Para aquellos como yo, que todavía tienen este problema usando office 2013 a través de powershell com object pueden usar el método opentext . El problema es que este método tiene muchos argumentos, que a veces son mutuamente excluyentes. Para resolver este problema puede usar el método invoke-namedparameter introducido en este post. Un ejemplo sería

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

Desafortunadamente, acabo de descubrir que este método de alguna manera rompe el análisis csv cuando las celdas contiene saltos de línea. Esto es compatible con csv, pero la implementación de microsofts parece estar pinchada. También de alguna manera no detectó caracteres específicos alemanes. Darle la cultura correcta no cambió este comportamiento. Todos los archivos (csv y script) se guardan con codificación utf8. Primero escribí el siguiente código para insertar el csv celda por celda.

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

Pero esto es extremadamente lento, por lo que busqué una alternativa. Aparentemente Excel le permite establecer los valores de un rango de celdas con un matriz. Así que usé el algoritmo en este blog para transformar el csv en un multiarray.

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

Puede usar el código anterior tal como debería convertir cualquier csv en excel. Simplemente cambie la ruta al csv y el carácter delimitador en la parte inferior.

 1
Author: flatbeat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:59

Pegar tabla en word. Haga una búsqueda / reemplazo y cambie todo - (guiones) a -- (doble guión). Copie y pegue en Excel. Puede hacer lo mismo con otros símbolos ( / ), etc. Si necesita volver a un guion una vez en Excel, simplemente formatee la columna en texto y luego realice el cambio. Espero que esto ayude.

 1
Author: Guest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-24 19:46:00

En mi caso, "Sept8" en un archivo csv generado usando R se convirtió en "8-Sept" por Excel 2013. El problema se resolvió mediante escritura.función xlsx2 () en el paquete xlsx para generar el archivo de salida en formato xlsx, que puede ser cargado por Excel sin conversión no deseada. Por lo tanto, si se le da un archivo csv, puede intentar cargarlo en R y convertirlo en xlsx usando la escritura.xlsx2() función.

 1
Author: Dinghai Zheng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-29 02:43:30

Hago esto para números de tarjetas de crédito que siguen convirtiendo a notación científica: Termino importando mi.csv en Hojas de cálculo de Google. Las opciones de importación ahora permiten desactivar el formato automático de los valores numéricos. Establezco cualquier columna sensible a Texto sin formato y la descarga como xlsx.

Es un flujo de trabajo terrible, pero al menos mis valores se dejan como deberían estar.

 1
Author: Brendonwbrown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-16 20:09:22

Una solución alternativa usando Google Drive (o Numbers si estás en un Mac):

  1. Abra los datos en Excel
  2. Establezca el formato de la columna con datos incorrectos en Texto (Formato > Celdas > Número > Texto)
  3. Cargue el .csv en Google Drive, y abrirlo con hojas de cálculo de Google
  4. Copie la columna infractora
  5. Pegar columna en Excel como texto (Editar > Pegar Especial > Texto)

Alternativamente, si está en una Mac para el paso 3, puede abrir los datos en Numbers.

 1
Author: Derek Hill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-19 22:08:55

(EXCEL 2016 y posteriores, en realidad no he probado en versiones anteriores)

  1. Abrir una nueva página en blanco
  2. Vaya a la pestaña"Datos"
  3. Haga clic en" From Text/CSV " y elija su archivo csv
  4. Compruebe en vista previa si sus datos son correctos.
  5. En caso de que alguna columna se convierta a la fecha, haga clic en" editar " y luego seleccione el tipo de texto haciendo clic en el calendario en la cabecera de la columna
  6. Haga clic en"Cerrar y cargar"
 1
Author: Roman Yakoviv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-27 09:45:43

2018

La única solución adecuada que funcionó para mí (y también sin modificar el CSV).

Excel 2010:

  1. Crear nuevo libro de trabajo
  2. Datos > De Texto > Seleccione su archivo CSV
  3. En la ventana emergente, elija el botón de opción" Delimitado", luego haga clic en "Siguiente >"
  4. Delimitadores casillas de verificación: marque solo "Coma" y desmarque las otras opciones, luego haga clic en "Siguiente >"
  5. En la" Vista previa de datos", desplácese hasta el extremo derecho y mantenga presionada la tecla mayús y haga clic en la última columna (esto seleccionará todas las columnas). Ahora en el" Formato de datos de columna "seleccione el botón de opción "Texto", luego haga clic en"Finalizar".

Excel office365: (versión de cliente)

  1. Crear nuevo libro de trabajo
  2. Data > From Text / CSV > Seleccione su archivo CSV
  3. Detección de tipo de datos > no detectar

Nota: Excel office365 (versión web), como estoy escribiendo esto, usted no será capaz de hacer eso.

 1
Author: evilReiko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-29 11:26:55

Si pone una coma invertida al comienzo del campo, se interpretará como texto.

Ejemplo: 25/12/2008 se convierte en '25/12/2008

También puede seleccionar el tipo de campo al importar.

 0
Author: Harley Holcombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-02 23:38:54

Okay encontró una manera simple de hacer esto en Excel 2003 hasta 2007. Abra un libro de trabajo xls en blanco. A continuación, vaya al menú Datos, importar datos externos. Selecciona tu archivo csv. Vaya a través del asistente y luego en" formato de datos de columna "seleccione cualquier columna que necesite ser forzada a"texto". Esto importará toda la columna como un formato de texto que evita que Excel intente tratar cualquier celda específica como una fecha.

 0
Author: Richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-06 01:14:02

El prefijo el espacio entre comillas dobles resolvió el problema!!

Tenía datos como "7/8" en uno de los .columnas de archivos CSV y MS-Excel lo estaba convirtiendo hasta la fecha como "07-Aug". Pero con "LibreOffice Calc" no había problema.

Para resolver esto, acabo de prefijar el carácter de espacio (espacio añadido antes de 7) like " 7/8" y funcionó para mí. Esto se prueba para Excel-2007.

 0
Author: NitinBirari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-21 15:19:51

Este problema todavía está presente en Mac Office 2011 y Office 2013, no puedo evitar que suceda. Parece una cosa tan básica.

En mi caso tenía valores como "1 - 2" & "7 - 12" dentro del CSV encerrado correctamente entre comillas invertidas, esto se convierte automáticamente en una fecha dentro de excel, si intenta convertirlo posteriormente a solo texto sin formato, obtendría una representación numérica de la fecha, como 43768. Además, reformatea grandes números que se encuentran en códigos de barras y números EAN para 123E + números de nuevo que no se pueden volver a convertir.

He encontrado que las hojas de Google Drive no convierten los números a fechas. Los códigos de barras tienen comas cada 3 caracteres, pero estos se eliminan fácilmente. Maneja los CSV realmente bien, especialmente cuando se trata de CSV de MAC / Windows.

Podría salvar a alguien en algún momento.

 0
Author: EricNo7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-21 10:45:48

LA SOLUCIÓN MÁS FÁCIL Me acabo de dar cuenta de esto hoy.

  • Abrir en Word
  • Sustituir todos los guiones por guiones
  • Guardar y Cerrar
  • Abrir en Excel

Una vez que haya terminado de editar, siempre puede abrirlo de nuevo en Word para reemplazar los guiones con guiones nuevamente.

 0
Author: Randy Hoffman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-12 15:10:26