如何使用ADO.NET Excel读取文件
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供
千家信息网最后更新 2024年11月11日如何使用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安全错误
数据库的锁怎样保障安全
农险网络安全问题
app服务器地址怎么获取
网络技术人文精神
网络技术办公室
没有网络安全就没有国家安全 演讲稿 博客
服务器共享文件夹
数据库删除全部索引
外国人怎么称呼中国游戏服务器
网络技术公司会计职能
光网络技术PDF微盘
口碑好的软件开发公司总裁
华为服务器硬盘驱动
宁夏广播电视台软件开发工程师
将应用放到服务器上使用
关于网络安全的作文40字
罗湖可靠网络安全服务
广东初越网络技术公司
服务器机柜厂家
数据库表属性在哪里
软件开发技术岗位说明书
数据库备份专家怎么使用
租用云服务器价格
土豆服务器叫什么名字
松江区第三方软件开发信息推荐
c 软件开发岗位职责
迪酷cs1.6服务器
政法网络安全与发展
软件测试需要的数据库知识
手抄报网络安全教育日主题
网络安全上市公司占有率