zoukankan      html  css  js  c++  java
  • ado读取excel

        public static class ExcelHelper
        {
            
    /// <summary>
            
    /// 读取所有的表(每个sheet映射为一个表)
            
    /// </summary>
            
    /// <param name="filepath"></param>
            
    /// <returns></returns>
            public static System.Collections.Generic.List<string> GetTables(string filepath)
            { 
                List
    <string> r=new List<string>();
                
    if (File.Exists(filepath))
                {
                    
    //string connStr="Provider=Microsoft.Jet." + "OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + filepath;
                    string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + filepath + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
                    
    using (OleDbConnection conn = new OleDbConnection(connStr))
                    {
                        conn.Open();
                        DataTable dt 
    = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                        
    for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            r.Add(dt.Rows[i][
    2].ToString().Trim());
                        }
                    }
                }
                
    return r;
            }

            
    /// <summary>
            
    /// 读取表中的数据
            
    /// </summary>
            
    /// <param name="filepath"></param>
            
    /// <param name="tableName">表名</param>
            
    /// <returns></returns>
            public static DataTable GetTableData(string filepath,string tableName)
            {
                DataTable r 
    = new DataTable();
                
    if (File.Exists(filepath))
                {
                    
    //string connStr = "Provider=Microsoft.Jet." + "OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=FALSE;IMEX=1\";Data Source=" + filepath;
                    string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + filepath + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
                    
    using (OleDbConnection conn = new OleDbConnection(connStr))
                    {
                        conn.Open();
                        
    string sql = "select * from [" + tableName+ "]";
                        OleDbCommand oc 
    = new OleDbCommand(sql, conn);
                        OleDbDataAdapter oda 
    = new OleDbDataAdapter(oc);
                        oda.Fill(r);
                    }
                }
                
    return r;
            }

            
    /// <summary>
            
    /// 读取表中的数据
            
    /// </summary>
            
    /// <param name="filepath"></param>
            
    /// <param name="tableIndex">表索引,几第n个表</param>
            
    /// <returns></returns>
            public static DataTable GetTableData(string filepath, int tableIndex)
            {
                var ts
    = GetTables(filepath);
                
    if (ts.Count > tableIndex)
                {
                    
    string tableName = ts[tableIndex];
                    DataTable r 
    = new DataTable();
                    
    if (File.Exists(filepath))
                    {
                        
    //string connStr = "Provider=Microsoft.Jet." + "OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=FALSE;IMEX=1\";Data Source=" + filepath;
                        string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + filepath + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
                        
    using (OleDbConnection conn = new OleDbConnection(connStr))
                        {
                            conn.Open();
                            
    string sql = "select * from [" + tableName + "]";
                            OleDbCommand oc 
    = new OleDbCommand(sql, conn);
                            OleDbDataAdapter oda 
    = new OleDbDataAdapter(oc);
                            oda.Fill(r);
                        }
                    }
                    
    return r;
                }
                
    else
                {
                    
    return null;
                }
            }

            
    /// <summary>
            
    /// 获取表结构(表的字段)
            
    /// </summary>
            
    /// <param name="filepath"></param>
            
    /// <param name="tableName"></param>
            
    /// <returns></returns>
            public static System.Collections.Generic.List<string> GetTableFields(string filepath, string tableName)
            {
                List
    <string> r=new List<string>();
                
    if (File.Exists(filepath))
                {
                    
    //string connStr = "Provider=Microsoft.Jet." + "OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=FALSE;IMEX=1\";Data Source=" + filepath;
                    string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + filepath + ";Extended Properties='Excel 12.0 Xml;HDR=YES'";
                    
    using (OleDbConnection conn = new OleDbConnection(connStr))
                    {
                        conn.Open();
                        
    string sql = "select * from [" + tableName + "] where 1=2";
                        OleDbCommand oc 
    = new OleDbCommand(sql, conn);
                        OleDbDataAdapter oda 
    = new OleDbDataAdapter(oc);
                        DataTable dt 
    = new DataTable();
                        oda.Fill(dt);
                        
    for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            r.Add(dt.Columns[i].Caption);
                        }
                    }
                }
                
    return r;
            }
        


        }
  • 相关阅读:
    深入理解JavaScript系列(15):函数(Functions)
    深入理解JavaScript系列(8):S.O.L.I.D五大原则之里氏替换原则LSP
    深入理解JavaScript系列(2):揭秘命名函数表达式
    深入理解JavaScript系列(3):全面解析Module模式
    深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP
    深入理解JavaScript系列(18):面向对象编程之ECMAScript实现(推荐)
    理解Javascript_13_执行模型详解
    深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
    深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP
    深入理解JavaScript系列(11):执行上下文(Execution Contexts)
  • 原文地址:https://www.cnblogs.com/zyip/p/1959795.html
Copyright © 2011-2022 走看看