您的位置:首页 > 编程语言 > ASP

利用asp.net来访问excel文档

2006-09-13 23:43 411 查看
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

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文件内容了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: