asp.net读取Excel文件:新手也能看懂

技术教程2019/11/1 17:24:06阅读:780

写在前面:

asp.net是微软公司开发的一种搭建动态网站页面的脚本语言。

Excel文件是微软office办公软件中的表格文件。


这里说明一下,为什么读取Excel文件要这么麻烦,虽然文件本身就是很多很多个二进制组成的,但是有特定的存储规则,不遵守这个规则去拿数据,是拿不到文件里面的真实数据的,只能是乱码。所以就要根据微软给出的规则去读取。

有些企业特别是采购业有很多的数据存放在Excel表格文件中,人员对表格的数据进行检索获得想要的数据,检索过程很多都是重复的步骤,说到重复的事情就应该想到要写个程序让机器帮我们做,以此提高工作效率。


最近接触到一个需求就是要用asp.net上传Excel文件,并且将Excel文件中的数据读取出来放到mysql数据库中。

在这个过程中有很多需要注意的地方,在此分享出来。

下面是asp.net读取Excel的具体代码。

string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + "; Extended Properties='Excel 12.0;HDR=No;IMEX=1'";

/*

* Microsoft.ACE.OLEDB.12.0——》微软提供的Excel数据库连接组件,有了它才能访问Excel文件

* Data Source——》指定Excel文件的路径

* Extended Properties——》指定一些访问Excel文件的属性,就是说怎么来读这个文件

* Excel 12.0——》指定引用库版本 连接Excel文件用的

* HDR:如果为Yes表示Excel表格第一行是标题,不去读取,如果是No表示从第一行也是数据,也要读取,(不写默认是Yes所以要注意了)

* IMEX:如果单元格有文字和数字,将单元格格式当做文本读取,这样可以避免因为格式的问题读取不到数据

*/

//创建一个连接对象

OleDbConnection conn = new OleDbConnection(cmdText);

//打开连接

if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)

{

conn.Open();

}

//拿到Excel表中的所有表格

DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

//查询名称为Sheet1的表

string strSql = "select * from [Sheet1$]";

//创建一个数据适配器

OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);

//创建一个数据集对象

DataSet ds = new DataSet();

//将数据放到数据集对象中

da.Fill(ds);

//创建数据表对象,将数据集中第一个表给了数据表对象

DataTable dt = new DataTable();

dt = ds.Tables[0];

到此你就能得到了Excel文件中的数据了,然后想怎么显示都可以了。

读取的过程可能会遇到的报错:

1未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

这个需要安装微软提供的一个软件即可解决

软件可自行去百度上搜索下载地址

注意:一般安装第一个32位的才行,我的64位笔记本安装了64位的还是报错


本文系网站原创,转载请注明文章链接地址