千家信息网

如何使用ADO.NET Excel读取文件

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供
千家信息网最后更新 2026年11月03日如何使用ADO.NET Excel读取文件

小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在关系数据库提供的各种对象中(表、视图、存储过程等),Excel 数据源仅提供相当于表的对象,它由指定工作簿中的工作表和定义的命名区域组成。命名区域被视为"表",而工作表被视为"系统表")这里我们将ADO.NET Excel读取也当作一个"数据库"来对待,然后利用OleDbConnection.GetOleDbSchemaTable 方法,要获取所需的架构信息,该方法获取的架构信息与ANSI SQl-92是兼容的。

注意:对于那些不熟悉 OLE DB 架构行集的人而言,它们基本上是由 ANSI SQL-92 定义的数据库构造的标准化架构。每个架构行集具有为指定构造提供定义元数据的一组列(称作 .NET 文档中的"限制列")。这样,如果请求架构信息(例如,列的架构信息或排序规则的架构信息),则您会明确知道可以得到哪种类型的数据。如果希望了解更多信息,请访问 Appendix B:Schema Rowsets。以下是读取Excel文件内"表"定义元数据,并显示出来的的ADO.NET Excel读取程序片断:

Code// 读取Excel数据,填充DataSet// 连接字符串      string xlsPath = Server.MapPath("~/app_data/somefile.xls");  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                  "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";  " + // 指定扩展属性为   Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作为数据返回,且以文本方式读取                  "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;  DataTable tblSchema = null;IList tblNames = null;  // 初始化连接,并打开conn = new OleDbConnection(connStr);conn.Open();  // 获取数据源的表定义元数据                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  GridView1.DataSource = tblSchema;GridView1.DataBind();  // 关闭连接conn.Close();

接着是一段利用"架构信息"动态读取Excel内部定义的表单或者命名区域的程序片断:

Codexcel数据,填充DataSet// 连接字符串   string xlsPath = Server.MapPath("~/app_data/somefile.xls");  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                  "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";  " + // 指定扩展属性为 Microsoft Excel 8.0 (97) 9.0 (2000) 10.0 (2002),并且***行作为数据返回,且以文本方式读取                 "data source=" + xlsPath;string sql_F = "SELECT * FROM [{0}]";  OleDbConnection conn = null;OleDbDataAdapter da = null;DataTable tblSchema = null;  IList tblNames = null;  // 初始化连接,并打开conn = new OleDbConnection(connStr);  conn.Open();// 获取数据源的表定义元数据                          //tblSchema = conn.GetSchema("Tables");  tblSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  //GridView1.DataSource = tblSchema;//GridView1.DataBind();  // 关闭连接//conn.Close();  tblNames = new List();  foreach (DataRow row in tblSchema.Rows)   {      tblNames.Add((string)row["TABLE_NAME"]);   // 读取表名}// 初始化适配器da = new OleDbDataAdapter();  // 准备数据,导入DataSetDataSet ds = new DataSet();  foreach (string tblName in tblNames)  {      da.SelectCommand = new OleDbCommand(String.Format(sql_F, tblName), conn);     try {          da.Fill(ds, tblName);   }     catch {          // 关闭连接          if (conn.State == ConnectionState.Open) {         conn.Close();         }throw;     }  }// 关闭连接if (conn.State == ConnectionState.Open)  {   conn.Close();}// 对导入DataSet的每张sheet进行处理          // 这里仅做显示GridView1.DataSource = ds.Tables[0];GridView1.DataBind();  GridView2.DataSource = ds.Tables[1];GridView2.DataBind();  // more codes  // 这里我们就不需要对SELEC 语句进行"硬编码",可以根据需要动态的构造FROM 字句的"表名"。

以上是"如何使用ADO.NET Excel读取文件"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 架构 信息 文件 区域 数据库 数据源 篇文章 工作 内容 动态 字符 字符串 对象 属性 文本 方式 方法 更多 片断 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 中关村互联网 科技集团 中国互联网科技股 河南真二互联网科技有限公司 互联网巨头科技公司 致骋互联网科技 卓越科技(互联网 ) 互联网科技缩写 互联网科技ppt模板 互联网科技小额贷款 广州善班互联网科技 济南华为互联网科技产业总部基地 现代互联网科技股 互联网还是高科技吗 崇明区互联网教育科技诚信经营 科技类公司包括互联网吗 锡山区互联网智能科技产品供应 科技互联网行业投资研究 上海互联网科技园景观 互联网企业和网络科技有限公司 深圳市人人互联网科技有限公司 奇酷互联网络科技 猫创互联网科技 美国互联网前沿科技 滨湖区互联网智能科技产品供应 银川新华互联网科技职业技术培训学校图片 湖北码尼互联网科技有限公司电话 互联网方面的科技前沿 马化腾互联网科技教学 互联网 科技节活动 微视频大赛
0