是否可以在ASP.NET响应中使用XSLT输出.XLSX文件

时间:2012-07-09 20:04:27

标签: c# asp.net xslt

我目前有一个.xsl文件,我使用XSLT将其输出为.xls文件并使用excel打开它。

我使用响应对象在ASP.NET应用程序中输出它,如下所示:

context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("content-disposition", "inline;filename=MyFile.xml");

但是,这会将文件作为.xsl扩展名输出,并显示以下弹出消息: “您尝试打开的文件'MyFile.xls'的格式与文件扩展名指定的格式不同。在打开文件之前,验证文件是否已损坏且来自受信任的来源。是否要打开现在?“

我试图找出两件事,是否可以将其输出为.xlsx扩展名?因为当我尝试这样做并更改内容类型时,它只允许我打开文件,直到我将扩展名设置回.xls。

第二,是如何通过更改代码来消除该消息?我找到了一些响应,只是指示您更改设置,例如:http://support.microsoft.com/kb/948615

然而,客户端请求根本不显示错误消息。感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

不要使用XSLT来尝试生成XLSX文件,因为它不是一个简单的XML文件,正如有人所说。您可以使用NPOI创建纯XLS文件,ExcelPackage或ClosedXML以生成XLSX文件。更多的工作,但它实际上是可行的。

答案 1 :(得分:0)

我找到了一些有关如何处理.XML文件扩展名的有趣信息。您似乎可以标记与Excel关联的XML文件,这将导致Microsoft XML编辑器使用Excel打开单个XML文件。