Necesito enviar un archivo CSV en respuesta HTTP. ¿Cómo puedo configurar la respuesta de salida como formato CSV?
Esto no está funcionando:
Response.ContentType = "application/CSV";
Usar text/csv
es el tipo más apropiado.
También debe considerar agregar un Content-Disposition
encabezado a la respuesta. A menudo, un Internet Explorer cargará un texto / csv directamente en una instancia alojada de Excel. Esto puede o no ser un resultado deseable.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
Lo anterior hará que aparezca un cuadro de diálogo "Guardar como" que puede ser lo que desea.
El tipo MIME del CSV es text / csv según RFC 4180 .
fuente
Usar
text/csv
como tipo de contenido.fuente
A lo largo de los años, he estado perfeccionando un conjunto perfecto de encabezados para esto que funcionan de manera brillante en todos los navegadores que conozco
fuente
Pruebe uno de estos otros tipos de mime (desde aquí: http://filext.com/file-extension/CSV )
Además, el tipo mime puede ser sensible a mayúsculas y minúsculas ...
fuente
Solo usa así
fuente
return new EmptyResult()
para que el nombre de archivo se pegue. De lo contrario, IE intentará guardar el archivo comoActionName.htm
.En ASP.net MVC, puede usar ay
FileContentResult
elFile
método:fuente
He descubierto que el problema con IE es que olfatea los datos devueltos y toma su propia decisión sobre qué tipo de contenido cree que se ha enviado. Hay una serie de efectos secundarios que esto causa, como abrir siempre un cuadro de diálogo guardar como para archivos de texto porque está utilizando la compresión de transferencias de datos. La solución es (en código php) ......
fuente
Establecer el tipo de contenido y la disposición del contenido como se describió anteriormente produce resultados muy diferentes con diferentes navegadores:
IE8: cuadro de diálogo Guardar como se desee, y Excel como la aplicación predeterminada. 100% bueno
Firefox: aparece el cuadro de diálogo Guardar como, pero Firefox no tiene idea de que es una hoja de cálculo. Sugiere abrirlo con Visual Studio! 50% bueno
Chrome: las sugerencias se ignoran por completo. Los datos CSV se muestran en el navegador. 0% bueno
Por supuesto, en todos estos casos me refiero a los navegadores a medida que salen de su caja, sin personalización de las asignaciones de mime / aplicación.
fuente
Sugiero insertar un carácter '/' delante de 'myfilename.cvs'
Espero que obtengas mejores resultados.
fuente
Para C # MVC 4.5 debe hacer lo siguiente:
fuente