2010-11-26 14 views
27

Estoy escribiendo un archivo separado por comas usando una aplicación de consola, y usando Process para abrir el archivo. Es una manera rápida y sucia de arrojar resultados de una consulta en Excel.generar/abrir CSV desde la consola: el archivo tiene un error de formato incorrecto

por un tiempo esto funcionó bien, pero últimamente empecé a recibir "El archivo que está intentando abrir 'blah.csv', está en un formato diferente al especificado por la extensión de archivo".

y que después de hacer clic en "Sí"

Excel ha detectado que blah.csv es un archivo SYLK, pero no puede cargarlo. O el archivo tiene errores o no es un formato de archivo SYLK. Haga clic en Aceptar para intentar abrir el archivo en un formato diferente.

Al presionar OK, se abre y se visualiza correctamente.

Veo algunas soluciones para esto en el mundo de la web con agregar encabezado de disposición de contenido, pero como estoy usando un Proceso para abrirlo, no puedo aplicar esa corrección.

mi código para abrir el archivo:

ProcessStartInfo info = new ProcessStartInfo(); 
info.FileName = filePath; 
info.UseShellExecute = true; 
Process.Start(info); 

si abro el archivo en Notepad ++ y mostrar todos los caracteres, sólo se muestra como CSV regular con CR finales de línea LF.

después de algunas investigaciones, parece que la línea de encabezados desencadena el error. Si simplemente escribo una línea vacía antes de los encabezados, el error desaparece. los encabezados de tener este aspecto:

encabezado1, encabezado2, CRLF encabezado3

+0

¿Podría publicar las primeras líneas del archivo? Anonimizado, si es necesario. –

Respuesta

55

un vistazo aquí: http://support.microsoft.com/kb/323626

que parece tener ID como los dos primeros caracteres en la fila de encabezado es el problema - un comportamiento bastante extraño de Excel en mi opinión.

+3

gracias, yah mis campos comienzan con 'ID ...' ... eso es extraño Gracias Microsoft! –

+3

Acabo de resolver mi problema (al igual que OP) con esta respuesta. ¡Gracias! –

+0

Cuando me encontré con el problema, pensé intuitivamente que ese podría ser el problema, pero luego pensé que no lo harían ... – User

5

El archivo CSV comienza con la identificación de dos caracteres. Si rodeas a los personajes con comillas dobles, debería funcionar bien.

2

(EDITADO) Tuve un problema similar: recibía exactamente el mismo error, pero en mi caso esto había ocurrido repentinamente después de meses de uso frecuente. Me pregunté si el problema realmente es el título de la columna "ID", la solución de Microsofts no explica por qué, como decía el OP, "durante un tiempo funcionó bien" y luego se convirtió en un problema.

Encontré en mi escenario que había algunos datos erróneos provenientes de un sistema ascendente donde se había agregado una coma en el nombre de alguien, y esto estaba invalidando el archivo .csv. Esto causó que el 'archivo esté en error de formato incorrecto' pero me envió por la ruta incorrecta con '[filename] es un archivo SYLK, pero no puede cargarlo'

espero que esto pueda ayudar a alguien más algún día.

+0

Evite hacer preguntas como respuesta. –

+0

No tengo la reputación suficiente para comentar las respuestas existentes, por lo que solo pude publicar una respuesta. La votación negativa es un poco dura, ¡pero gracias por involucrarse! Ahora tengo más información para agregar ahora, así que intentaré editar mi primera publicación ... – AgentNaz

+0

downvote no fue para hacerte daño, sino como parte de la revisión. Y, pasar tal pregunta sin bandera o voto negativo puede llevar al revisor en problemas, créanme que marcar es peor. Mi sugerencia es esperar 50 repeticiones antes de comenzar a comentar. Hasta entonces, si tienes una pregunta genuina, hazla como pregunta separada. –

0

SYLK file format is not valid error se produce cuando el archivo CSV tiene primeros dos caracteres están en el mayúsculas I y D. Se puede resolverse mediante los siguientes pasos: Abra el archivo en el Bloc de notas y pulsa la tecla de apóstrofo (’) antes de la primera personaje. Guarde el archivo y vuelva a abrir MS Excel.

+0

¡Bienvenido a Stack Overflow! [Cómo responder] (http://stackoverflow.com/help/how-to-answer) puede ayudarlo a escribir las respuestas que serán aceptadas y votadas. – zhon

Cuestiones relacionadas