首页 > 编程 > .NET > 正文

利用ASP.NET来访问Excel文档

2024-07-10 12:58:22
字体:
来源:转载
供稿:网友
利用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:/2.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文件内容了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表