通过HTTP将XML导入Excel

时间:2010-09-02 11:45:00

标签: asp.net xml excel-2007

我有一个简单的(内联)ASPX页面,它正在输出XML。

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

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

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

任何人都可以提出任何理由,为什么Excel会在来自网址时将结果视为文本?

来自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();

blah blah ..在这里构建XML

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

    Response.End(); 
%>

1 个答案:

答案 0 :(得分:2)

这是一个疯狂的猜测,但您是否尝试使用其他内容类型发送响应?

我会尝试使用以下MIME类型之一:

  • 应用/ XML
  • 应用/ vnd.ms-Excel中
  • 应用程序/ x-Excel中
  • 应用程序/ x-msexcel的

相关资源: