• 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

  • 相关阅读:
    spring-mvc访问本地html文件
    好文收集
    jsp参数乱码解决
    ext window嵌jsp页面自适应
    正则学习(转)
    Error occurred during initialization of VM Incompatible initial and maximum heap sizes specified
    产品测试流程
    创建maven工程时报错,解决方案
    接口测试中如何利用cookies保持会话
    http协议基础
  • 原文地址:https://www.cnblogs.com/duanchen/p/4457994.html
Copyright © 2020-2023  润新知