Wednesday, 15 May 2013

Excel Report create customise excel with databse

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Text;
using System.IO;
using System.Data.SqlClient;
public partial class AmbitAdmin_AluminiReports : System.Web.UI.Page
{
    #region Private variables

    DataSet _ds = new DataSet();
    string StrDatefrom = "";
    string StrDateto = "";
    #endregion

   
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                //getting citylist
                if (Session["Mess"] != null)
                    Session.Contents.Remove("Mess");
            }
        }
        catch (Exception ex)
        {
            throw (ex);
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        string strErrMsg = "";
        try
        {
            strErrMsg = checkValues();
            if (strErrMsg != "")
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "Alert", "<script language='javascript' type='text/javascript'>alert('" + strErrMsg + "');</script>");
            }
            else
            {
                if (Page.IsValid)
                {
                    cmdDisplayReports();
                }
            }
        }
        catch (Exception ex)
        {
            throw (ex);
        }
    }

    /// <summary>
    /// Publish in excel
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    ///
    protected string Reports(DataTable dt)
    {

        DataTable toExcel = dt.Copy();
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<table border='1' bordercolor='black' rules='all' " + "style='BORDER: 1px double; BORDER-COLLAPSE: collapse;' cellpading='2' cellspacing='2'>\r\n");
        sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
            sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;' colspan=" + (toExcel.Columns.Count + 1).ToString() + "></td>\r\n");
        sb.Append("</tr>\r\n");
        sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
            sb.Append("<td align='center' style='height:{1}pt;mso-number-format:\\@;' colspan=" + (toExcel.Columns.Count + 1).ToString() + "><strong>" + toExcel.Rows.Count.ToString() + " Records Found.</strong></td>\r\n");
        sb.Append("</tr>\r\n");
        sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
            sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;' colspan=" + (toExcel.Columns.Count + 1).ToString() + "></td>\r\n");
        sb.Append("</tr>\r\n");
       
        sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
        sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'><strong>Sr. No</strong></td>\r\n"); //For Serial Number
        foreach (DataColumn column in toExcel.Columns)
        {
            sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'><strong>" + column.ColumnName + "</strong></td>\r\n");
        }
        sb.Append("</tr>\r\n");
        if (toExcel.Rows.Count == 0)
        {
            sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
            sb.Append("<td align='left' colspan'" + (toExcel.Columns.Count + 1) + "'>\r\n");
            sb.Append("No Records Found</td>\r\n");
            sb.Append("</tr>\r\n");
        }
        else
        {
            Boolean Flag;
            int Counter = 1;
            foreach (DataRow row in toExcel.Rows)
            {
                Flag = true;
                sb.Append("<tr height=17 style='height:12.75pt'>\r\n");
                foreach (DataColumn column in toExcel.Columns)
                {
                    if (Flag)
                    {
                        sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'>" + Counter.ToString() + "</td>\r\n"); // For Serial Number
                        //sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'>" + row[column].ToString().Replace(",", string.Empty) + "</td>\r\n");
                        sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'>" + row[column].ToString() + "</td>\r\n");
                        Flag = false;
                    }
                    else
                    {
                        //sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'>" + row[column].ToString().Replace(",", string.Empty) + "</td>\r\n");
                        sb.Append("<td align='left' style='height:{1}pt;mso-number-format:\\@;'>" + row[column].ToString() + "</td>\r\n");
                    }
                }
                sb.Append("</tr>\r\n");
                Counter += 1;
            }
        }
        sb.Append("</table>\r\n");
        return sb.ToString();
    }

    protected void cmdDisplayReports()
    {
        string attachment = "attachment; filename=Alumini_Report.xls";
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Buffer = true;
        HttpContext.Current.Response.ClearContent();
        HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
        HttpContext.Current.Response.AddHeader("content-disposition", attachment);
        HttpContext.Current.Response.Charset = "";
        try
        {
            getReports();

            //if (_ds.Tables[0].Rows.Count > 0)
            //{
                StringBuilder sb = new StringBuilder();
                sb.Append(Reports(_ds.Tables[0]));
                HttpContext.Current.Response.Write(sb.ToString());
            //}
            HttpContext.Current.Response.End();
        }
        catch (Exception ex)
        {

            throw (ex);
        }
    }

  
  
    #region Private methods
    /// <summary>
    /// Bind dataset with details
    /// </summary>
    private void getReports()
    {
        #region private varibales
           
        #endregion

        // generating records
        try
        {
        StrDatefrom = txtFromDate.Text;
        StrDateto = txtDateTo.Text;
        _ds = getData();
        }
        catch (Exception ex)
        {
            throw (ex);
        }
    }

    /// <summary>
    /// Server Validation
    /// </summary>
    /// <returns></returns>
    private string checkValues()
    {
        #region Private variables
         string strErrMsg="";
        #endregion

        // checking values
        /*
        if (txtDateFrom.Text == "" && txtDateTo.Text == "")
            strErrMsg = "Please select atleast one criteria for search.";
       
         */
        if (txtFromDate.Text == "" && txtDateTo.Text != "")
             strErrMsg = "Please select From Date.";
         if (txtFromDate.Text != "" && txtDateTo.Text == "")
             strErrMsg = "Please select To Date.";
         if (txtFromDate.Text != "" && txtDateTo.Text != "")
        {
            if (Convert.ToDateTime(txtDateTo.Text) < Convert.ToDateTime(txtFromDate.Text))
                strErrMsg = "To Date cannot be less than From Date.";
        }
         return strErrMsg;
    }

    protected DataSet getData()
    {
        #region private variabes
        DataSet _dsData = new DataSet();
        string _strConnString = "";
        #endregion
        SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["SqlConnString"]);
        SqlCommand cmd = null;
        try
        {
            cmd = new SqlCommand("webroot.Manage_Alumini_Form", conn);
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@action", SqlDbType.VarChar).Value = "GetReport";
            cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = DBNull.Value;
            cmd.Parameters.Add("@emailaddr", SqlDbType.VarChar).Value = DBNull.Value;
            cmd.Parameters.Add("@mobile", SqlDbType.VarChar).Value = DBNull.Value;
            cmd.Parameters.Add("@currOrg", SqlDbType.VarChar).Value = DBNull.Value;
            cmd.Parameters.Add("@currDesig", SqlDbType.VarChar).Value = DBNull.Value;
            cmd.Parameters.Add("@Date1", SqlDbType.VarChar).Value = txtFromDate.Text;
            cmd.Parameters.Add("@Date2", SqlDbType.VarChar).Value = txtDateTo.Text;

            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet(cmd.CommandText);
            da.Fill(ds);
            _dsData = ds;
        }
        catch (Exception ex)
        {

            throw (ex);
        }
        return _dsData;
    }


    #endregion
    #region
    private int getObjectLength()
    {
        return 19;
    }
    #endregion



}

No comments:

Post a Comment