C# 如何将多个数据表导出到单个Excel文件中的多个工作表

C# 如何将多个数据表导出到单个Excel文件中的多个工作表,c#,asp.net,C#,Asp.net,下面是我导出单表数据的C#代码,但我需要将3个表数据导出到一个excel文件中。我需要将多个数据表导出到单个Excel文件中的多个工作表 protected void lnkbtn_Submit_Click(object sender, EventArgs e) { DateTime Fromdate = DateTime.ParseExact(txt_FromDate.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture); D

下面是我导出单表数据的C#代码,但我需要将3个表数据导出到一个excel文件中。我需要将多个数据表导出到单个Excel文件中的多个工作表

 protected void lnkbtn_Submit_Click(object sender, EventArgs e)
  {
    DateTime Fromdate = DateTime.ParseExact(txt_FromDate.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture);
    DateTime Todate = DateTime.ParseExact(txt_ToDate.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture);

    bo.Dateused = Fromdate;
    bo.Dateused2 = Todate;

    DataTable dt = bl.Get_Registrationdetailsbydate(bo);
    gv_Regdetails.DataSource = dt;
    gv_Regdetails.DataBind();
    Session["Fromdate"] = txt_FromDate.Text;
    Session["Todate"] = txt_ToDate.Text;
    if (gv_Regdetails.Rows.Count > 0)
    {
        Session["registrationtable_date"] = dt;
        btnExport.Visible = true;
    }

    else
    {
        Session["registrationtable_date"] = null;
        btnExport.Visible = false;
    }
}
protected void Button1_Click(object sender, ImageClickEventArgs e)
{
    DataGrid dg = new DataGrid();
    if (Session["registrationtable_date"] != null)
    {
        dg.DataSource = (DataTable)Session["registrationtable_date"];
        dg.DataBind();
        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=TotalRegistrationDetails.xls");
        System.Web.HttpContext.Current.Response.Charset = "";
        System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        System.Web.HttpContext.Current.Response.ContentType = "application/vnd.xls";
        System.IO.StringWriter stringwrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlwrite = new HtmlTextWriter(stringwrite);
        dg.RenderControl(htmlwrite);
        System.Web.HttpContext.Current.Response.Write(stringwrite.ToString());
        System.Web.HttpContext.Current.Response.End();
        Session.Remove("registrationtable_date");

        }
      }
    }
我的存储过程脚本:

ALTER PROCEDURE [dbo].[Get_Registrationdetailsbydate]
 (
  @Fromdate datetime,
  @Todate datetime
 )
 AS
BEGIN

 select Name,Email,Mobile,SubmissionDate from Registration  WHERE  (CONVERT(varchar(50), SubmissionDate, 101)  BETWEEN @Fromdate AND @Todate) 
END

提前感谢。

您可以查看此Codeproject链接,该链接描述将数据集导出到多个Excel工作表

上述链接在本问题中可用


请查找有关如何使用C创建Excel文件的问题。

使用数据集存储两个数据表

 public DataSet getDataSetExportToExcel()
        {
            DataSet ds = new DataSet();
            DataTable dtEmp = new DataTable("Employee");
            dtEmp = getAllEmployeesList();

            DataTable dtEmpOrder = new DataTable("Order List");
            dtEmpOrder = getAllEmployeesOrderList();
            ds.Tables.Add(dtEmp);
            ds.Tables.Add(dtEmpOrder);
            return ds;
        }
和使用

dg.DataSource = (DataSet)Session["registrationtable_date"];
        dg.DataBind();

我需要根据我的上述代码,如果可能的话@克里希纳PS@Zahed恐怕,您需要使用上面链接中给出的Excel转换器才能获得正确的Excel文件。将网格数据写入响应也无助于解决这种情况。我们可以使用存储过程来实现,上面的链接我们直接调用na@克里希纳PS@Zahed是的,你可以用它。这个例子是为了说明。该代码也适用于SP。但下面我根据我的代码得到了一个答案@Krishna P SI正在使用存储过程,您可以根据上述方法更新答案吗?我的另一个存储过程方法是bl.Get_educationdetails@库蒂·拉杰什·瓦兰盖