我使用carlosag dll为我创建一个xml excel文件(在内存流中)。
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("content-disposition", "myfile.xml");
memory.WriteTo(Response.OutputStream);
我的问题是,我在客户端得到一个myfile.xls(ie)或myfile.xml.xls(ff),因此从excel得到一个烦人的安全警告。
我也用application/vnd.openxmlformats-officedocument.spreadsheetml.sheet(xlsx)尝试过,但它甚至都不会打开。
所以我需要剪切.xml并将其作为vnd.ms-excel发送(如何?)或者采用另一种mime类型(但哪种类型?)是的。
编辑:我发现一个错误描述here
我想知道这是否还开着,为什么?
最佳答案
像这样使用
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("content-disposition", "attachment; filename=myfile.xls");
对于Excel 2007及更高版本,mime类型不同
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AppendHeader("content-disposition", "attachment; filename=myfile.xlsx");
参见mime类型列表
Office 2007 File Format MIME Types
编辑:
如果内容不是本机Excel文件格式,而是
基于文本的格式(如csv、txt、xml),则网站可以添加
下面的http头指向他们的get响应,告诉ie使用
替换名称,在该名称中可以将扩展名设置为右侧
内容类型:
Response.AddHeader "Content-Disposition", "Attachment;Filename=myfile.csv"
有关详细信息,请参见this link