C# 无法从gridview导出excel

C# 无法从gridview导出excel,c#,asp.net,C#,Asp.net,这是我的代码: protected void btnExcel_Click(object sender, ImageClickEventArgs e) { try { DataTable dtbl = (DataTable)ViewState["dtbl"]; string path = "E:\\shubby" + DateTime.Now.Day.ToString() + "_" +

这是我的代码:

          protected void btnExcel_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            DataTable dtbl = (DataTable)ViewState["dtbl"];
            string path = "E:\\shubby" + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + ".xls";
            FileInfo fi = new FileInfo(path);
            StringWriter sw = new StringWriter();
            HtmlTextWriter htmltw = new HtmlTextWriter(sw);
            DataGrid grdCrew = new DataGrid();
            grdCrew.DataSource = dtbl;
            grdCrew.DataBind();

            grdCrew.RenderControl(htmltw);
            string directory = path.Substring(0, path.LastIndexOf("\\"));// GetDirectory(Path);
            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            System.IO.StreamWriter vw = new System.IO.StreamWriter(path, true);
            sw.ToString().Normalize();
            vw.Write(sw.ToString());
            vw.Flush();
            vw.Close();
            WriteAttachment(fi.Name, "application/vnd.ms-excel", sw.ToString());
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

    public static void WriteAttachment(string FileName, string FileType, string content)
    {
        HttpResponse Response = System.Web.HttpContext.Current.Response;
        Response.ClearHeaders();
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
        Response.ContentType = FileType;
        Response.Write(content);
        Response.End();
    }
我有单独的业务逻辑和存储过程文件,一切正常,只是我遇到的excel导出问题

我得到的错误是一个异常,它说“客户端不拥有所需的特权”


请帮助

在您发布的代码中,我没有看到任何对
Excel互操作程序集的引用
。@Brian生成Excel兼容文件时,您不必安装Excel/Interop引用。@YuriyGalanter-是的,这是正确的。但是,这确实使它更容易做到。