C# 读取Excel中的数据

c# 读取excel中的数据

   #region 读取Excel中的数据        ///          /// 读取Excel中的数据        ///          /// Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls         /// Excel中的数据         private DataTable GetTable(string fileName)        {             OleDbConnection objConn = null;            System.Data.DataTable dt = null;            string connString = string.Empty;            OleDbDataAdapter da = new OleDbDataAdapter();            //获取Excel工作薄中Sheet页(工作表)名集合            String[] ss = this.GetExcelSheetNames(fileName);            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\"";                // 创建连接对象                 objConn = new OleDbConnection(connString);                // 打开数据库连接                 objConn.Open();                               string sql_F = "Select * FROM [{0}]";                for (int i = 0; i < ss.Length;i++ )                {                    da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss[i].ToString() + "$"), objConn);                    da.Fill(dataTable);                    MessageBox.Show("第"+i+"次表中数据量="+dataTable.Rows.Count.ToString());                }                dataTable = DeleteBlank(dataTable,9);                MessageBox.Show("删除空行后,表中数据量=" + dataTable.Rows.Count.ToString());                return dataTable;            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());                return null;            }            finally            {                // 清理                 if (objConn != null)                {                    objConn.Close();                    objConn.Dispose();                }                if (dt != null)                {                    dt.Dispose();                }            }                   }        #endregion
 #region  删除指定表中的空白行        ///         ///删除指定表中的空白行         ///         /// 表名        /// Excel中的列数        /// 删除空白行后的DataTable        private DataTable DeleteBlank(DataTable dt,int ColNum)        {            if (dt == null || dt.Rows.Count==0)            {                return dt;            }            //删除其中的空行(注意for循环的形式)            for (int i = dt.Rows.Count - 1; i >= 0; i--)            {                DataRow row = dt.Rows[i];                bool flag = true;                //当某行的ColNum列,均为空时,改行为空                for (int j = 0; j  0)                    {                        flag = false;                        break;                    }                }                if (flag)                {                    dt.Rows[i].Delete();                                 }            }            dt.AcceptChanges();            //把行中DBNull列替换成空字符串            for (int k = dt.Rows.Count - 1; k >= 0; k--)            {                DataRow row = dt.Rows[k];                for (int z = 0; z < ColNum; z++)                {                    object o = row[z];                    if (o == DBNull.Value)                    {                        if (dt.Columns[z].DataType == typeof(string))                        {                            row[z] = "";                        }                    }                }            }            dt.AcceptChanges();            return dt;        }        #endregion

小注:

读取Excel的时候,会自动处理表头。

 以上就是C# 读取Excel中的数据的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:27:48
下一篇 2025年12月17日 06:27:57

相关推荐

发表回复

登录后才能评论
关注微信