Tuesday, October 11, 2011

Export SQl Data Table into Excel,CSV with image Header


using System;
using System.Configuration;
using System.Security;
using System.Web;
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.Text;
using System.Collections;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

public partial class _Default : System.Web.UI.Page
{

#region variable
   SqlConnection connection = new SqlConnection("Data Source=servername;Initial Catalog=Databasename;Integrated Security=True");
   
    public int j;
    ArrayList list = new ArrayList();
    public static int column_count = 65;
    int column_total;
    int k;
    OleDbConnection MyConnection;
#endregion 
 

/*------------- Insert Data into Excel -------------------------*/

    public void insert_data()
    {
        MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='c://test.xls';Extended Properties=Excel 8.0;");
       
        SqlCommand sql_cmd = new SqlCommand("select * from table_name",connection);
        SqlDataReader dr = sql_cmd.ExecuteReader();
        while (dr.Read())
        {
            string sno = dr["Sno"].ToString();
            string name = dr["Name"].ToString();
            string address = dr["Address"].ToString();
            string grade = dr["Grade"].ToString();
            string salary = dr["Salary"].ToString();
            MyConnection.Open();
            string sql = "insert into [Sheet1$] (Sno,Name,Address,Grade,Salary) values('"+sno+"','"+name+"','"+address+"','"+grade+"','"+salary+"')";
            OleDbCommand cmd = new OleDbCommand(sql, MyConnection);
            cmd.ExecuteNonQuery();
            MyConnection.Close();
        }
    }

/*------------- End of Method -------------------------*/



    /* This Method used to read column names from table*/
    public void fetch_column_name()
    {

        connection.Open();
        SqlCommand cmd = new SqlCommand("select column_name from information_schema.columns where table_name='table_name'", connection);
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            list.Add(dr["column_name"]);

        }
        connection.Close();


    }

    public void insert_excel_image()
    {
        fetch_column_name();
        Excel.Application app;
        Excel.Workbook Excel_Book;
        Excel.Worksheet Excel_sheet;
        Excel.Range range;
        object mis_value = System.Reflection.Missing.Value;
        app = new Excel.ApplicationClass();
        Excel_Book = app.Workbooks.Add(mis_value);
        Excel_sheet = (Excel.Worksheet)Excel_Book.Worksheets.get_Item(1);
        Excel_sheet.Shapes.AddPicture(Server.MapPath("logo.jpg"), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 50, 50, 100, 100);
        column_total = column_count + list.Count;

        /* --------------- Creating Header----------------------*/
        for (column_count = 65; column_count <= column_total; column_count++)
        {

            char c = Convert.ToChar(column_count);
            string s = c + "20";
            range = Excel_sheet.get_Range(s, mis_value);

            if (j < list.Count)
            {
                range.Value2 = list[j].ToString();
                j++;
            }
        }

        /* ----------------- End of Header -------------------------*/

        /*-----------------------------------------------------------*/
        DataTable dt = new DataTable();
        //insert_excel_image();
        connection.Open();
        SqlCommand cmd = new SqlCommand("select * from table_name", connection);
        SqlDataAdapter dr = new SqlDataAdapter(cmd);
        dr.Fill(dt);

     /*------------------------------------------------------------*/


/*-------------------- Insert Image into Excel-----------------------*/

        Excel_Book.SaveAs("C:/test.xls", Excel.XlFileFormat.xlWorkbookNormal, mis_value, mis_value, mis_value, mis_value, Excel.XlSaveAsAccessMode.xlExclusive, mis_value, mis_value, mis_value, mis_value, mis_value);
        Excel_Book.Close(true, mis_value, mis_value);
        app.Quit();
        insert_data();
/*-------------------- End of Process  -----------------------*/

    }


    protected void Page_Load(object sender, EventArgs e)
    {

       
    }
   
   
    protected void Button2_Click1(object sender, EventArgs e)
    {
        insert_excel_image(); //Using to insert data into Excel.
    }
   
}

No comments: