这里就如何动态读取ADO.NET Excel数据和列出了读取ADO.NET Excel数据文件内“表”定义元数据,并显示出来的的程序片断。
咱们用ADO.NET操作数据库,咱们就会更Excel打交道,这是避免不了的。现在要介绍是怎么动态的读取ADO.NET Excel数据,这儿的动态指的是事前不知道Excel文件的是什么样的结构,或许无法猜测,比方一张.xls文件有多少张sheet,而且每张sheet的结构或许都不相同等等。其实咱们能够经过获取Excel的“架构信息”来动态的结构查询句子。这儿的“架构信息”与数据库范畴的“数据库架构信息”含义相同(也称“元数据”),关于整个数据库,这些“元数据”一般包含数据库或可经过数据库中的数据源、表和视图得到的目录以及所存在的束缚等;而关于数据库中的表,架构信息包含主键、列和主动编号字段等。
#T#在联系数据库供给的各种目标中(表、视图、存储进程等),ADO.NET Excel数据源仅供给相当于表的目标,它由指定作业簿中的作业表和界说的命名区域组成。命名区域被视为“表”,而作业表被视为“体系表”)这儿咱们将Excel也当作一个“数据库”来对待,然后使用OleDbConnection.GetOleDbSchemaTable 办法。留意:关于那些不熟悉 OLE DB 架构行集的人而言,它们基本上是由 ANSI SQL-92 界说的数据库结构的标准化架构。每个架构行集具有为指定结构供给界说元数据的一组列(称作 .NET 文档中的“约束列”)。这样,假如恳求架构信息(例如,列的架构信息或排序规矩的架构信息),则您会清晰知道能够得到哪种类型的数据。
以下是读取ADO.NET Excel数据文件内“表”界说元数据,并显示出来的的程序片断:
- //读取Excel数据,填充DataSet
- //衔接字符串
- stringxlsPath=Server.MapPath("~/app_data/somefile.xls");
- stringconnStr="Provider=Microsoft.Jet.OLEDB.4.0;"+
- "ExtendedProperties=\"Excel8.0;HDR=No;IMEX=1\";"+
//指定扩展特点为MicrosoftExcel8.0(97)9.0(2000)10.0(2002),而且***行作为数据回来,且以文本方法读取- "datasource="+xlsPath;
- stringsql_F="SELECT*FROM[{0}]";
- OleDbConnectionconn=null;
- OleDbDataAdapterda=null;
- DataTabletblSchema=null;
- IList<string>tblNames=null;
- //初始化衔接,并翻开
- conn=newOleDbConnection(connStr);
- conn.Open();
- //获取数据源的表界说元数据
- //tblSchema=conn.GetSchema("Tables");
- tblSchema=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});
- GridView1.DataSource=tblSchema;
- GridView1.DataBind();
- //封闭衔接
- conn.Close();
转载请说明出处
知优网 » 全面归纳ADO.NET Excel数据读取文件
知优网 » 全面归纳ADO.NET Excel数据读取文件