zoukankan      html  css  js  c++  java
  • 获取Excel表中各个Sheet的方法

    获取Excel表中各个Sheet的方法

     private void simpleButton2_Click(object sender, EventArgs e)
            {
                OfdBOM.Filter = "Excel文件|*.xls;*.xlsx";
                OfdBOM.Title = "选择BOM文件";
                OfdBOM.Multiselect = false;
                string strConn = "";
                if (OfdBOM.ShowDialog() == DialogResult.OK)
                {
                    OleDbConnection olecon = new OleDbConnection();
                    try
                    {
                        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + OfdBOM.FileName + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
                        olecon = new OleDbConnection(strConn);
                        olecon.Open();
                    }
                    catch
                    {
                        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + OfdBOM.FileName + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1';";
                        olecon = new OleDbConnection(strConn);
                        olecon.Open();
    
                    }
    
                    //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
                    DataTable dtSheetName = olecon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
    
                    //包含excel中表名的字符串数组
                    string[] strTableNames = new string[dtSheetName.Rows.Count];
                    for (int k = 0; k < dtSheetName.Rows.Count; k++)
                    {
                        strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();  //获取各个Sheet名称
                    }
    
                    OleDbDataAdapter myCommand = null;
                    DataTable dt = new DataTable();
    
                    //从指定的表明查询数据,可先把所有表明列出来供用户选择
                    string strExcel = "select * from [" + strTableNames[0] + "]";
                    myCommand = new OleDbDataAdapter(strExcel, strConn);
                    dt = new DataTable();
                    myCommand.Fill(dt);
    
                }
            }
    

      

  • 相关阅读:
    SpringMVC
    MyBatis 与 Spring 的完美整合方法
    持久层之 MyBatis: 第三篇 :缓存 And 高级查询
    持久层之 MyBatis: 第二篇 :动态SQL And多表查询
    C语言实现简单epoll服务器(二)
    C语言简单实现epoll服务器(一)
    shell编程题(十九)
    shell编程题(十七)
    shell编程题(十六)
    shell编程题(十三)
  • 原文地址:https://www.cnblogs.com/Ares-blog/p/3334192.html
Copyright © 2011-2022 走看看