【问题标题】:Add an "Export to Excel" button to a webpage to export gridview to excel in webapplication将“导出到 Excel”按钮添加到网页以将 gridview 导出到 web 应用程序中的 excel
【发布时间】:2010-12-09 11:22:29
【问题描述】:

我为诊所构建了一个患者管理软件,我需要将患者列表从 ASP.net 网格视图导出到 excel 文件

我的问题是:

有没有办法将gridview导出到excel 我正在使用 vb.net 和 Visual web developer 2010

我将高级搜索页面中的数据源存储到会话中并重定向到结果页面 这是结果页面的代码

Partial Class Sresults
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    GridView1.DataSource = Session("dsource")
    GridView1.DataBind()

End Sub

Protected Sub Backbtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Backbtn.Click
    Session("dsource") = ""
    Response.Redirect("searchme.aspx")

End Sub

Protected Sub Page_PreRenderComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRenderComplete
    Response.Write(GridView1.Rows.Count.ToString + " Records")
End Sub
End Class

【问题讨论】:

标签: asp.net vb.net web-applications export-to-excel


【解决方案1】:

点击按钮试试下面的代码

// Get DataTable that DataGrid is bound to.
var dataTable = (DataTable)dataGrid.DataSource;

// Create new ExcelFile.
var ef = new ExcelFile();
// Add new worksheet to the file.
var ws = ef.Worksheets.Add(dataTable.TableName);
// Insert the data from DataTable to the worksheet starting at cell "A1".
ws.InsertDataTable(dataTable, "A1", true);

// Stream file to browser.
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=Employee.xls");
ef.SaveXls(Response.OutputStream);
Response.End();

【讨论】:

  • 我需要导入微软互操作名称空间吗?我在visual web developer express安装中找不到它!!
【解决方案2】:

首先您必须将以下内容添加到页面指令以避免运行时错误

 EnableEventValidation ="false"

添加gridview到aspx页面 会话“dsource”正在从包含连接字符串和选择命令的高级搜索页面传递数据源 然后是后面的代码


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Threading;
using System.IO;
using System.Reflection;

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

    gridview1.DataSource = Session["dsource"];
    gridview1.DataBind();




}


  public override void VerifyRenderingInServerForm(Control control)
{

}



protected void Button2_Click(object sender, EventArgs e)
{
    HtmlForm form = new HtmlForm();
    string attachment = "attachment; filename=Patients.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.ContentType = "application/ms-excel";
    StringWriter stw = new StringWriter();
    HtmlTextWriter htextw = new HtmlTextWriter(stw);
    form.Controls.Add(gridview1);
    this.Controls.Add(form);
    form.RenderControl(htextw);
    Response.Write(stw.ToString());
    Response.End();
}

}

【讨论】:

  • 如果它是一个可视化的 Web 部件呢?
猜你喜欢
  • 2010-11-01
  • 2013-09-25
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多