如何使用ADO.NET Excel读取文件
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供
千家信息网最后更新 2025年11月14日如何使用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安全错误
数据库的锁怎样保障安全
广东工业软件开发怎么样
如何把系统放在服务器上
cti服务器名词解释
彩虹岛s1数据库密码
数据库字段为空条件怎么写
云服务器管理重点
江苏安卓软件开发哪里好
国产数据库神通
厦门波斯特软件开发有限公司
服务器资料自动备份
国庆怀旧服服务器
未来之役服务器亚服选哪个
云南数据网络安全工程平台资质
国企网络安全保障工作方案
县一级网络安全和信息通信
流光互联网科技
新能源汽车电池软件开发
计算机与网络技术的应用
数据库备份照片排版
戴尔服务器管理口系统安装
区块链 数据库开发
河南数据库防护箱销售厂家
互联网科技公司保险板块
净网网络安全法
软件开发的付款流程图
问道开服必须要用云服务器吗
华为存储服务器登陆地址
经营范围可以加软件开发
云服务器哪个便宜
计算机3级网络技术题库