C# 在手机上打开excel文件(.xls)时遇到问题

C# 在手机上打开excel文件(.xls)时遇到问题,c#,asp.net,excel,C#,Asp.net,Excel,我正在web表单页面中创建excel文档,当我加载该页面时,系统会提示我下载excel文件,该文件在我的计算机上打开良好。 但是,如果我发送相同的文件作为附件,并试图在我的手机上查看它,我会得到一个错误,说文件格式不受支持 下面是我的代码。。希望有人能给我们一些启示 我在手机上看到的错误是: 文件读取错误。文件类型不受支持或文件已损坏 excelling.aspx代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="exce

我正在web表单页面中创建excel文档,当我加载该页面时,系统会提示我下载excel文件,该文件在我的计算机上打开良好。 但是,如果我发送相同的文件作为附件,并试图在我的手机上查看它,我会得到一个错误,说文件格式不受支持

下面是我的代码。。希望有人能给我们一些启示

我在手机上看到的错误是:

文件读取错误。文件类型不受支持或文件已损坏

excelling.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="excelling.aspx.cs" Inherits="app_Files_excelling" %>

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <p runat="server" id="p1">Hello world.</p>
                <table>
            <thead>
                <tr>
                    <th>column 1 header</th>
                    <th>column 2 header</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>column 1 value</td>
                    <td>column 2 value</td>
                </tr>
            </tbody>

            <tfoot>
                <tr>
                    <td>Footer 1</td>
                    <td>Footer 2</td>

                </tr>

            </tfoot>
        </table>
</body>
</html>

像那些评论过的人一样,在通过浏览器提供服务之前,您需要生成一个真正的XSLX文件。您可以通过许多库轻松实现这一点


这似乎被HTML重命名为XLS。在我的代码中,我将Response.contentType设置为application/vnd.ms excel。。我想那会解决的…那不是XLS的内容。难怪它不能被认出来。我告诉我的手机,我的网站发送了一个苹果,但我发送了一个棒球,它不承认棒球是苹果。发生了什么?如果你试着用这个棒球做苹果派,你就会知道答案。:-)将
response.contentType
设置为某物不会神奇地将内容转换为其他类型;它只是告诉另一端期望您所发送的内容类型。您仍然必须发送该contentType.lol中的实际内容。所以没有解决办法了?。是的。发送真正的XLS内容,或将contentType更改为HTML并将内容重命名为NCR.htm或NCR.HTML。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class app_Files_excelling : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        Response.ContentType = "application/vnd.ms-excel";

        Response.AddHeader("Content-Disposition", "attachment;filename=NCR.xls");

    }
}