C# EXCEL(.xls和.xlsx)導入到數據庫


C# EXCEL(.xls和.xlsx)導入到數據庫  轉(http://www.cnblogs.com/bart-cai/articles/2716555.html)

原理:
1.判斷是否是Excel文件(xls和xlsx兩種文件格式,Excel2003和Excle2007)
2.上傳Excel文件到服務器的文件夾(要在服務器設置用戶ASPNET對此文件夾的讀寫權限)
3.對此Excel文件進行操作(可以作為OLEdb數據源、ODBC數據源,還可以通過創建Excel.ApplicationClass)

        GridView1.DataSource = null;
        GridView1.DataBind();//先清除GridView1之前的數據綁定
        #region 顯示Excel數據
        string clientFilename = FileUpload1.PostedFile.FileName.ToLower();
        string serverFilename = "";
        if (clientFilename == "")
        {
            Label1.Text = "Path and filename can't null!";
            return;
        }
        if (clientFilename.ToLower().IndexOf(".xlsx") > 0)
        {
            serverFilename = ".xlsx";
        }
        else
        {
            if (clientFilename.ToLower().IndexOf(".xls") > 0 && clientFilename.EndsWith("xls"))
            {
                serverFilename = ".xls";
            }
            else
            {
                Label1.Text = "Must be Excel file!";
                return;
            }
        }
        
        serverFilename = "~/upload/" + "Test" + DateTime.Now.Year.ToString()
            + (DateTime.Now.Month > 9 ? DateTime.Now.Month.ToString() : "0" + DateTime.Now.Month.ToString())
            + (DateTime.Now.Day > 9 ? DateTime.Now.Day.ToString() : "0" + DateTime.Now.Day.ToString())
            + (DateTime.Now.Hour > 9 ? DateTime.Now.Hour.ToString() : "0" + DateTime.Now.Hour.ToString())
            + (DateTime.Now.Minute > 9 ? DateTime.Now.Minute.ToString() : "0" + DateTime.Now.Minute.ToString())
            + (DateTime.Now.Second > 9 ? DateTime.Now.Second.ToString() : "0" + DateTime.Now.Second.ToString())
            + DateTime.Now.Millisecond.ToString()+serverFilename;
        
        serverFilename = MapPath(serverFilename);
        if (File.Exists(serverFilename))
        {
            File.Delete(serverFilename);
        }
        FileUpload1.SaveAs(serverFilename);//上傳文件

        string strResult = "";
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + serverFilename + "';Extended Properties='Excel 8.0;HDR=YES;'";
        DataTable dt = new DataTable();
        if (serverFilename.ToLower().IndexOf(".xlsx") > 0)
        {
            strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + serverFilename + "';Extended Properties='Excel 12.0;HDR=YES'";
        }
        if (serverFilename.ToLower().IndexOf(".xls") > 0 && serverFilename.EndsWith("xls"))
        {
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + serverFilename + "';Extended Properties='Excel 8.0;HDR=YES;'";
        }
        OleDbConnection conn = new OleDbConnection(strConn);
        try
        {
            if (conn.State.ToString() == "Closed")
            {
                conn.Open();
            }
            OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [sheet1$]", strConn);
            adapter.Fill(dt);
            this.GridView1.DataSource = dt;
            GridView1.DataBind();
            conn.Close();
        }
        catch (Exception ee)
        {
            Label1.Text = Label1.Text + " File's content can't matched,please redo it!" + ee.Message;
            //Label1用來顯示錯誤信息
            return;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM