首页 > 编程 > .NET > 正文

利用ASP.NET程序来访问Excel文档

2024-07-10 12:55:03
字体:
来源:转载
供稿:网友

商业源码热门下载www.html.org.cn

    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文件内容了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表