He estado buscando durante un tiempo tratando de descubrir cómo generar un archivo CSV de tal manera que obligue a Excel a interpretar los valores como una cadena y no intente convertirlos en números o fechas.
p.ej:
"141", "10/11/2002", "350.00", "1311742251"
Excel intenta convertir "inteligentemente" todo esto a sus formatos de fecha / número nativos. ¿Hay alguna manera de evitar eso?
EDITAR: Aclaró la intención de mi pregunta, perdón por la confusión.
fuente
"=""123"""
otra manera está mal formada. Los campos que contienen a"
deben estar delimitados y la"
s en el campo escapó con otras"
s.="123"
no es un campo CSV válido porque contiene el carácter delimitador de campo"
sin delimitarlo correctamente o el campo. El hecho de que Excel lo lea como una fórmula depende exclusivamente de Excel y no tiene nada que ver con el archivo CSV.Como muchos, he estado luchando con las mismas decisiones que toma Microsoft y probé varias soluciones sugeridas.
Para Excel 2007, lo siguiente es:
Sin embargo:
Poner una pestaña antes de todos los valores antes de poner comillas dobles alrededor de ellos SÍ previene las conversiones a fechas Y previene el recorte de ceros iniciales o finales y la hoja ni siquiera muestra marcadores de advertencia desagradables en la esquina superior izquierda de cada celda.
P.ej:
Tenga en cuenta que el carácter de tabulación debe estar entre comillas dobles. Editar: resulta que las comillas dobles ni siquiera son necesarias.
Al hacer doble clic en el archivo csv, se puede abrir el archivo como una hoja de cálculo en Excel que muestra todos los valores que se tratan como arriba, como datos de texto. Asegúrese de configurar Excel para usar el '.' como el punto decimal y no el ',' o cada línea del archivo csv terminará como un texto en la primera celda de cada fila. Aparentemente, Microsoft piensa que CSV significa "No el punto decimal" Valor separado.
fuente
El uso de la funcionalidad de importación de Excel le permite especificar el formato (automático, texto o fecha) que cada columna debe interpretarse y no requiere ninguna modificación en los archivos de datos.
Puede encontrarlo como
Data
→Get External Data
→From Text
en Excel 2007/2010.O
Data
→Import External Data
→Import Data
en Excel 2003.Aquí hay una imagen del Asistente de importación de texto de Excel 2003 en acción sobre los datos de ejemplo proporcionados, que me muestra cómo importar las dos últimas columnas como texto:
fuente
El ejemplo de Simon no funcionó para mí, y sospecho que es una diferencia de idioma. En C #, así es como se ve mi cadena de formato de trabajo:
y así es como se ve el archivo de salida:
Como se puede ver, el formato en el archivo de salida
="VALUE",
no es lo"=""VALUE""",
que creo que puede ser una convención de Visual Basic.Estoy usando Excel 2010. A propósito, Google Sheets no abrirá / convertirá un archivo formateado de esta manera. Funcionará si elimina el signo igual de esta manera
"VALUE",
: Excel aún abrirá el archivo pero ignorará el hecho de que desea que sus columnas sean cadenas.fuente
Una forma sencilla de obligar a Excel a interpretar la fecha como texto es poner una comilla simple delante de la fecha, en lugar de usar comillas completas, como en:
Si puede importar el CSV en lugar de abrirlo, puede decirle a Excel qué formato debe tener cada columna. Echa un vistazo a esta pregunta que hice .
fuente