• try this , you could always play with datatypes once you have data in your table..

    string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents\\Book1_3.xlsx;Extended Properties='Excel 12.0;HDR=NO;'";

    OleDbConnection con = new OleDbConnection(constr);

    con.Open();

    DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);

    con.Close();

    SqlConnection sqlcon = new SqlConnection("Server=servername;Database=dbname;Trusted_Connection=True;Integrated Security=SSPI;");

    string tblcreate = "Create Table ##TEMP_Excel(";

    foreach (DataRow dr in dt.Select("TABLE_NAME='Sheet1$'"))

    {

    tblcreate = tblcreate + dr["COLUMN_NAME"].ToString() + " varchar(32)" + ",";

    }

    tblcreate=tblcreate.Substring(0, tblcreate.Length - 1);

    tblcreate = tblcreate + " );";

    sqlcon.Open();

    SqlCommand cmd = new SqlCommand(tblcreate, sqlcon);

    cmd.ExecuteNonQuery();

    sqlcon.Close();