将数据集导出到 Excel 并从 asp.net Web 方法引发文件下载对话框

2024-04-01

我使用以下代码将数据集导出到 Excel 工作表。

[WebMethod]
    public static void ExporttoExcel()
    {
        DataSet ds;
       productfactory pf=new productfactory();
        ds = pf.getproducts();
        HttpResponse response = HttpContext.Current.Response;

        // first let's clean up the response.object
        response.Clear();
        response.Charset = "";
        response.ContentEncoding = System.Text.Encoding.Default;

        // set the response mime type for excel
        response.ContentType = "application/vnd.ms-excel";
        response.AddHeader("Content-Disposition", "attachment;filename=\"products.xls\"");

        // create a string writer
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter htw = new HtmlTextWriter(sw))
            {
                // instantiate a datagrid
                DataGrid dg = new DataGrid();                    
                dg.DataSource = ds.Tables[0];
                dg.DataBind();
                dg.RenderControl(htw);
                string filepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\products.xls";                    
                response.Write(sw.ToString());
               // response.End();

            }
        }       
    }

问题是它没有增加文件下载,因此没有发生导出。相同的代码在正常方法中运行良好。但用网络方法就不行了。


我建议创建一个以 ashx 结尾的 HttpHandler,并将创建 excel 文件的代码放入其中。

然后从你的 javascript 代码中调用它。

document.location.href = "ExporttoExcel.ashx";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据集导出到 Excel 并从 asp.net Web 方法引发文件下载对话框 的相关文章

随机推荐