Asp.net 通过HTTP将XML导入Excel

Asp.net 通过HTTP将XML导入Excel,asp.net,xml,excel-2007,Asp.net,Xml,Excel 2007,我有一个简单的(内联)ASPX页面,可以输出XML 我想使用XML数据导入中的数据|来自其他来源|将此XML导入Excel 2007 如果我为我的APSX页面指定URL,Excel会将结果打开到文本导入向导中:( 如果我直接从记事本打开我的URL,将内容保存到一个文件中并将其导入Excel,则正确处理的是Xml 有人能解释一下为什么Excel将来自Url的结果视为文本吗 这是来自ASPX页面的代码 <%@ Page Language="C#" %> <%@ Import Nam

我有一个简单的(内联)ASPX页面,可以输出XML

我想使用XML数据导入中的数据|来自其他来源|将此XML导入Excel 2007

如果我为我的APSX页面指定URL,Excel会将结果打开到文本导入向导中:(

如果我直接从记事本打开我的URL,将内容保存到一个文件中并将其导入Excel,则正确处理的是Xml

有人能解释一下为什么Excel将来自Url的结果视为文本吗

这是来自ASPX页面的代码

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<%
    Response.Clear();
    Response.ContentType = "text/xml";
    Response.ContentEncoding = Encoding.UTF8;

    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.Encoding = Encoding.UTF8;
    settings.CloseOutput = false;
    settings.CheckCharacters = true;

    using (MemoryStream output = new MemoryStream())
    {
        using (XmlWriter xml = XmlWriter.Create(output, settings))
        {
            xml.WriteStartDocument();

这是一个猜测,但是您是否尝试使用不同的内容类型发送响应

我将使用以下MIME类型之一进行拍摄:

  • 应用程序/xml
  • 应用程序/vnd.ms-excel
  • 应用程序/x-excel
  • 应用程序/x-msexcel
相关资源:

            xml.WriteEndElement();
            xml.Flush();
            xml.Close();
        }
        Response.Write(Encoding.UTF8.GetString(output.ToArray()));
    }

    Response.End(); 
%>