Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:尝试保存导出的excel文件,但将其另存为网页(.html)_C#_Excel_Export To Excel - Fatal编程技术网

C#:尝试保存导出的excel文件,但将其另存为网页(.html)

C#:尝试保存导出的excel文件,但将其另存为网页(.html),c#,excel,export-to-excel,C#,Excel,Export To Excel,下面是我用来导出excel文件的代码 public void ExportReport() { DataTable dataTable = new DataTable(); dataTable = getDataTable(); HttpResponse response = HttpContext.Current.Response; GridView grdExportData = new GridView();

下面是我用来导出excel文件的代码

public void ExportReport()
    {
        DataTable dataTable = new DataTable();
        dataTable = getDataTable();
        HttpResponse response = HttpContext.Current.Response;
        GridView grdExportData = new GridView();

        grdExportData.AllowPaging = false;
        grdExportData.DataSource = dataTable;
        grdExportData.DataBind();

        //Clear the response and add the content types and headers to it.
        response.Clear();
        response.ClearContent();
        response.ContentType = "application/octet-stream";
        DateTime currDate = DateTime.Now;
        response.AddHeader("Content-Disposition", "attachment; filename=report.xls")

        // Create a dynamic control, populate and render it
        GridView excel = new GridView();
        excel.DataSource = dataTable;
        excel.DataBind();
        HtmlTextWriter htmlTextWriter = new HtmlTextWriter(response.Output);
        htmlTextWriter.Write("<table><tr><td colspan='3'><b>Report Title</b></td><td colspan='1'></td><td colspan='1'><b>Date: &nbsp;</b></td><td colspan='1'>" + DateTime.Today.ToString("MM/dd/yyyy") + "</td></tr></table>");
        excel.RenderControl(htmlTextWriter);
        response.Flush();
        response.End();
    }
public void ExportReport()
{
DataTable=新的DataTable();
dataTable=getDataTable();
HttpResponse response=HttpContext.Current.response;
GridView grdExportData=新的GridView();
grdExportData.allowpage=false;
grdExportData.DataSource=dataTable;
grdExportData.DataBind();
//清除响应并向其添加内容类型和标题。
response.Clear();
response.ClearContent();
response.ContentType=“应用程序/八位字节流”;
DateTime currDate=DateTime.Now;
AddHeader(“内容处置”、“附件;文件名=report.xls”)
//创建动态控件,填充并渲染它
GridView excel=新建GridView();
excel.DataSource=dataTable;
excel.DataBind();
HtmlTextWriter HtmlTextWriter=新的HtmlTextWriter(response.Output);
htmlTextWriter.Write(“报告标题日期:+DateTime.Today.ToString(“MM/dd/yyyy”)+”);
excel.RenderControl(htmlTextWriter);
response.Flush();
response.End();
}
代码可以工作并导出报告,但当我在“ms excel”中修改excel工作表并尝试保存文件时,它保存为网页格式。 我希望默认格式为Excel


提前感谢。

您需要更改
ContentType


对于
.xls
文件,它是
“application/vnd.ms excel”

您不是在创建excel文件,而是在创建具有excel扩展名的HTML文件。(Excel应在打开/保存时警告此问题)如果您希望文件的行为与真正的XLS一样,您需要创建真正的XLS文件。另一种方法是CSV。我搜索了,但没有找到任何东西来创建真正的XLS文件。你知道如何创建一个真正的XLS文件吗?可能是