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

原文地址:https://www.cnblogs.com/duanchen/p/4457994.html