我需要在HTTP响应中发送CSV文件.如何将输出响应设置为CSV格式?
这不起作用:
Response.ContentType = "application/CSV";
AnthonyWJone.. 470
使用text/csv
是最合适的类型.
您还应该考虑Content-Disposition
在响应中添加标头.通常,Internet Explorer将text/csv直接加载到托管的Excel实例中.这可能是也可能不是理想的结果.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
以上将导致出现"另存为"对话框,这可能是您想要的.
使用text/csv
是最合适的类型.
您还应该考虑Content-Disposition
在响应中添加标头.通常,Internet Explorer将text/csv直接加载到托管的Excel实例中.这可能是也可能不是理想的结果.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");
以上将导致出现"另存为"对话框,这可能是您想要的.
根据RFC 4180,CSV的MIME类型是text/csv.
使用text/csv
的内容类型.
多年来,我一直在为这个工具磨练一套完美的标题,这些标题在我所知道的所有浏览器中都非常出色
// these headers avoid IE problems when using https: // see http://support.microsoft.com/kb/812935 header("Cache-Control: must-revalidate"); header("Pragma: must-revalidate"); header("Content-type: application/vnd.ms-excel"); header("Content-disposition: attachment; filename=$filename.csv");
尝试其中一种其他mime类型(从这里:http://filext.com/file-extension/CSV)
文本/逗号分隔值
文/ CSV
应用程序/ CSV
应用程序/ EXCEL
应用/ vnd.ms-Excel中
应用程序/ vnd.msexcel
此外,mime类型可能区分大小写......
就这样使用吧
Response.Clear(); Response.ContentType = "application/CSV"; Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\""); Response.Write(t.ToString()); Response.End();
在ASP.net MVC中,您可以使用a FileContentResult
和File
方法:
public FileContentResult DownloadManifest() { byte[] csvData = getCsvData(); return File(csvData, "text/csv", "filename.csv"); }