我需要在HTTP响应中发送一个CSV文件。如何将输出响应设置为CSV格式?

这是行不通的:

Response.ContentType = "application/CSV";

当前回答

使用text/csv是最合适的类型。

您还应该考虑向响应中添加Content-Disposition报头。通常,一个文本/csv文件会被Internet Explorer直接加载到Excel的托管实例中。这可能是一个理想的结果,也可能不是。

Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");

上述操作将导致出现一个文件“另存为”对话框,这可能是你想要的。

其他回答

使用text/csv是最合适的类型。

您还应该考虑向响应中添加Content-Disposition报头。通常,一个文本/csv文件会被Internet Explorer直接加载到Excel的托管实例中。这可能是一个理想的结果,也可能不是。

Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");

上述操作将导致出现一个文件“另存为”对话框,这可能是你想要的。

根据RFC 4180, CSV的MIME类型为text/ CSV。

就像这样使用

Response.Clear();
Response.ContentType = "application/CSV";
Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\"");
Response.Write(t.ToString());
Response.End();

使用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");