.NET读取Execl数据

Posted 擅长死循环

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET读取Execl数据相关的知识,希望对你有一定的参考价值。

需要引用 

using System.Data;
using System.Data.OleDb;

调用: var customerInfoList = await GetExeclTableAsync("D:/......./ddd.xlsx");

 

封装方法
#region 读取Excel中的数据
        /// <summary> 
        /// 读取Excel中的数据 支持表头(.xlsx)   不支持表头(.xls)  
        /// </summary> 
        /// <param name="fileName">Excel文件路径</param> 
        /// <returns>Excel中的数据</returns> 
        public async Task<DataTable>  GetExeclTableAsync(string fileName)
       
            OleDbConnection Conn = null;
            DataTable dt = null;
            string connString = string.Empty;
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataTable dataTable = new DataTable();
            try
           
                string FileType = fileName.Substring(fileName.LastIndexOf("."));
                if (FileType == ".xls")
                    connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
                else//.xlsx
                    connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\\"Excel 12.0;HDR=YES;IMEX=1\\"";
                // 创建连接对象 
                Conn = new OleDbConnection(connString);
                // 打开数据库连接 
                Conn.Open();
                //获取Excel工作薄中Sheet页(工作表)名集合
                DataTable ss = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] null, null, null, "Table" );
                string sql_F = "Select * FROM [0]";
                for (int i = 0; i < ss.Rows.Count; i++)
               
                    da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss.Rows[i][2].ToString()), Conn);
                    da.Fill(dataTable);
               
                return dataTable;
           
            catch (Exception)
           
                return null;
           
            finally
           
                // 释放 
                if (Conn != null)
               
                    Conn.Close();
                    Conn.Dispose();
               
                if (dt != null)
               
                    dt.Dispose();
               
           
       

        #endregion

以上是关于.NET读取Execl数据的主要内容,如果未能解决你的问题,请参考以下文章

读取Execl表 导入数据库

java读取execl表格中的数据

python读取execl数据文件

python xml格式的execl读取数据

利用NPOI读取Execl数据插入数据库

Python openpyxl读取execl表数据