asp.net 操作excel的实现代码
excel是microsoft公司的office套件中的一种软件,他主要用来处理电子表格。excel以界面友好、处理数据迅速等优点获得广大办公人员的欢迎。所以很多文档就以excel的形式保存了下来。对于程序设计人员,在程序设计中,我们往往要访问excel文件来获得数据。但由于excel文件不是标准数据库,所以用程序语言来访问他就比较困难。
asp.net是microsoft公司极力推荐的一个产品,作为.net framework框架中的一个重要组成部分,他主要用于web设计。全新的设计理念、强大功能使得asp.net正在受到越来越多的程序设计人员的欢迎。也正是asp.net的强大的功能才使得访问excel文档成为了一件相对简单的事情。下面就通过一个例子来具体说明asp.net是如何访问的excel文档的。
一. 程序设计及运行环境
(1).windows 2000 professional
(2)..net framework sdk beta 2
(3).microsoft access data component 2.6(madc2.6)
二. 具体的设计思路
(1).获得要访问的excel文件名称
(2).读出excel文件的内容
(3).用datagrid格式显示出来
下面就一些关键的步骤来具体说明。
三. 程序设计的关键步骤
(1).为了方便,我们就把excel文件假定在c盘的根目录,名称为test.xls。
(2).为了读取excel文件,我们必须了解一个名称空间(namespace)--system.data.oledb。system.data.oledb中有三个对象分别是oledbconnection,oledbcommand,oledbdataadapter。我们就是通过他们来访问excel文件的。
i> oledbconnection对象主要是提供连接方式。
ii> oledbcommand对象提供对目标的具体操作方法。
iii>oledbdataadapter对象是对对象进行不同操作后的返回数据集。
为了读取c盘的test.xls只要以下语句就可以完成:
dim myoledbconnection as oledbconnection = new
oledbconnection("provider=microsoft.jet.oledb.4.0;" & _
"data source=c:test.xls;" & _
"extended properties=""excel 8.0;""")
dim myoledbcommand as oledbcommand = new oledbcommand("select *
from [sheet1$]",myoledbconnection) '如果你想读出sheet2的内容
,把sheet1$改成sheet2$即可
dim mydata as oledbdataadapter= new
oledbdataadapter(myoledbcommand)
(3).读出excel文件内容后,就要把他用datagrid显示出来。为了显示,还要用另外一个名称空间--system.data。他里面有个对象dataset,他可以和datagrid进行数据帮定,从而以datagrid形式显示数据。而此时读出的数据集并不是以对象dataset来表现的,这就需要进行转换,好在oledbdataadapter对象提供了一个方法--fill,可以完成转换。具体程序如下:
dim mydataset as new dataset()
mydata.fill(mydataset)
'完成从oledbdataadapter对象到dataset的转换
datagrid1.datasource = mydataset.tables(0).defaultview
datagrid1.databind() '完成数据帮定,显示数据
四. 具体的源代码:
<%@ page language="vb" %>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.oledb" %>
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
dim mydataset as new dataset()
dim myoledbconnection as oledbconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;" & _
"data source=c:.xls;" & _
"extended properties=""excel 8.0;""")
dim myoledbcommand as oledbcommand = new oledbcommand("select * from [sheet1$]",myoledbconnection)
dim mydata as oledbdataadapter= new oledbdataadapter(myoledbcommand)
mydata.fill(mydataset)
datagrid1.datasource = mydataset.tables(0).defaultview
datagrid1.databind()
end sub
</script>
<html>
<head></head>
<body>
<asp:label id="l1" runat="server">读取c盘根目录下的test.xls文件,并以datagrid的形式显示出来</asp:label>
<asp:datagrid id=datagrid1 runat="server"/>
</body>
</html>
五. 总结
至此一个读取excel文件的asp.net程序就全部完成了,如果你的机器达到以上提到的运行环境,那就建立一个指向此asp.net程序的web虚拟目录,随便拷贝一个excel文件到c盘的根目录,在浏览器运行一下程序,你就可以看到excel文件内容了。
上一篇: webpack中的热刷新与热加载的区别
下一篇: JavaScript如何对图片进行黑白化