如何使用ADO.NET Excel读取文件
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供
千家信息网最后更新 2025年01月31日如何使用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;IListtblNames = 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; IListtblNames = 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安全错误
数据库的锁怎样保障安全
服务器cmd
计算机网络的服务器架构
服务器开机检测硬盘如何关闭
达梦数据库查询用户密码策略
全国网络安全竞赛题库
数据库文件未记录号
湖南一站式网络技术服务技巧
项目数据库系统解决方案概述
延长石油网络安全科长
河南睿莱网络技术有限公司
sql数据库恢复备份
深圳市思普诺软件开发有限公司
衢州网络安全绘画
app与服务器数据同步
学网络安全应该报什么专业
网络安全密钥和wifi密钥
游戏数据库破损
实用计算机网络技术课后习题
wind数据库一年多少钱
计算机网络安全法律法规试题
软件开发搭建服务器
找回相机数据库文件
昆明分布式服务器介绍
三级网络安全标准
计算机网络技术脆弱性原理
跑跑网络技术有限公司
网络安全设施登记表
巨乘网络技术有限公司
门窗软件开发教学
服务器怎么双网口绑定