WinForm 讀取Excel 數據顯示到窗體中


最近教學中,需要用到WinForm 讀取Excel數據,於是就做了一個簡單的,廢話不多說,直接codding...

 1 //讀取Excel的幫助類
 2 class SqExcellHelper
 3     {
 4         public static DataTable GetData(string tablename)
 5         {
 6             DataTable dtEmp = new DataTable(tablename);
 7             OleDbConnection con = new OleDbConnection();
 8             // Persist Security Info 布爾類型.為True時,表明采用集成安全機制;若為False,則表明不采用集成安全機制。
 9             //con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
10             //"Data Source = Employee.xlsx;Persist Security Info=False;Mode=ReadWrite;Extended Properties=Excel 8.0";
11 
12             //string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + ";
13             //Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; 
14             //此連接可以操作.xls與.xlsx文件 (支持Excel2003 和 Excel2007 的連接字符串)
15             //備注: "HDR=yes;"是說Excel文件的第一行是列名而不是數據,"HDR=No;"正好與前面的相反。
16             //      "IMEX=1 "如果列中的數據類型不一致,使用"IMEX=1"可必免數據類型沖突。
17  
18             // 注:  根據需求,這里的Data Source 是數據源;根據需要改成你需要的文件名稱 *
19             
20             con.ConnectionString = "Provider=Microsoft.Ace.OleDb.12.0;" +
21                 "Data Source = prize.xls;Extended Properties='Excel 12.0; HDR=Yes; IMEX=1';";
22             
23             try
24             {
25 
26                 con.Open();
27                 //string sql = "Select * from [Sheet1$]";
28                 OleDbDataAdapter da = new OleDbDataAdapter("Select * from [Sheet1$]", con);
29                 da.Fill(dtEmp);
30             }
31             catch (Exception ex)
32             {
33 
34                 Console.WriteLine(ex.Message);
35             }
36             finally
37             {
38                 con.Close();
39             }
40             return dtEmp;
41         }
View Code

這里沒有用到三層,后面的代碼就是直接加載數據到WinForm數據控件中,代碼如下:

        /// <summary>
        /// 窗體加載事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
private void MainYJ_Load(object sender, EventArgs e)
        {
            
             string sql = "Select * from [Sheet1$]";
            DataTable dtp = SqlHelper.GetData(sql);
            this.dataGridView1.DataSource = dtp;   
            int randnum = (dtp.Rows.Count - 1);
            this.textBox1.Text = dtp.Rows[randnum]["獎品名稱"].ToString();

         }
View Code

效果圖:

 

由於WinForm 實際開發中,用的不太多,這里只是做了一個簡單的Demo,如果有錯誤,請原子中的朋友指出,謝謝!

 

相關鏈接:http://blog.csdn.net/pan_junbiao/article/details/8872936


免責聲明!

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



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