欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net 操作excel的实现代码

程序员文章站 2022-05-31 17:06:25
excel是microsoft公司的office套件中的一种软件,他主要用来处理电子表格。excel以界面友好、处理数据迅速等优点获得广大办公人员的欢迎。所以很多文档就以e...

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文件内容了。