用ASP.NET操作Excel

来源:互联网 发布:网络大电影分账模式 编辑:程序博客网 时间:2024/05/22 06:05

 【转自】 http://hi.baidu.com/zck98530/blog/item/f3f978f40aac58dbf3d38515.html

 

一、建立连接和Excel数据源建立连接与连接Access等数据库差不多,比较简单,只是在一些细节方面稍微有一些改变。最简单的,我们这样连接Excel数据源:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=目录/excel.xls;Extended Properties=Excel 8.0;上面的连接字符串可能我们很熟悉了,需要注意的是这里要设置“Extended Properties”为Excel的版本,现在已经有的版本为5.0、7.0、8.0等,一般的,5.0到7.0版本,设置这个属性为5.0;7.0以上版本,设置这个属性为8.0。这也算是一个取巧吧。Extended Properties还有另外一个参数,我们知道,Excel对每一列取名和Access不一样,Excel中,列的名字和数据的值没有区别的,都是放在数据区中,所以,怎样连接数据的时候来出去数据标题和数据值的关系呢?这里就可以设置一个HDR参数,HDR参数可以设置为“YES”或者“NO”,如果设置为“NO”,连接就会自动为数据列加上如“F1”“F2”等的说明,其实我们可以这样理解,如果设置为“Yes”,数据就是按照Excel的实际数据格式现实,如果设置为“NO”,会在每列数据加一个“F1”“F2”等的数据头信息。现在,我们来看具体在ASP.NET中怎样连接:<%@ Import Namespace="System.Data" %> <script runat="server">Sub Page_Load(sender as object, e as EventArgs)Dim objconn as New OleDB.OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/agasp/samp/excel.xls;Extended Properties=Excel 8.0;")objconn.Open()‘数据处理objconn.Close()End Sub</script> 二、数据处理以上的数据连接和操作数据库差别不大,现在,我们来看看到底怎样具体对数据进行操作。1、Select语句Select语句是所以数据操作里面最常见最常用的,现在,我们首先看最简单的取得一个数据表(WorkSheet)的所有数据,假设这个数据表(WorkSheet)名为“First”,可以这样取得所有数据:SELECT * FROM [First$]。这里,我们要注意两点:一是数据表名必须用方括符;二是数据表名字一定要加一个“$”符号来表示这是一个数据表。我们还可以限制检索数据的范围,比如我们要检索A1到D20的所有数据,可以这样检索:SELECT * FROM [SampleSheet$A1:D20],这里,使用A1:D20来限制检索范围。如果数据表第一行已经定义数据列的名字,我们可以选择需要显示的数据列来检索:SELECT 姓名 FROM [First$A1:B2]。以上我们看了怎样使用Select语句来检索数据表信息,尽管很简单,但是我们在具体使用中一定要注意几点:(1)针对每一列数据,定义数据的名字或者类型;比如我们在人事表中,可以定义“姓名”、“性别”等列,当然,这里的定义就是设置列的第一行值为需要定义的值。(2)注意Excel数据结构和Access的不同;在处理数据的过程中严格区别两者的差异,不要将Access数据处理SQL语句直接移植来操作Excel。2、Insert语句Insert语句在Excel中可能使用起来比较麻烦,因为Excel中,怎样来区分每一列数据呢?Access中每列数据有数据段名,Excel中没有这一项设置。看看刚才我们使用的Select语句,我们用数据列的第一行作为数据列名来检索数据,现在,我们也用第一行来区分数据列,比如可以这样插入数据:INSERT INTO [first$] (姓名,性别,年龄) VALUES ('章三', '男', '23')。 3、Update语句Update语句和Insert语句差不多,比如我们可以这样修改更新数据:UPDATE SampleSheet$ SET Age = '24' WHERE FirstName = 'John' AND LastName = 'Albert' 4、建立数据表(WorkSheet)和操作Access一样,我们直接听过代码来建立新的数据表:CREATE TABLE NewSheet ( Position char(255), Department char(255), DeptEmail char(255)) 三、具体实例现在,我们来看一个包括各种数据操作的具体实例:<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.OleDB" %><script runat="server">Sub Page_Load(sender as object, e as EventArgs)Dim connstr as String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/book1.xls;Extended Properties=Excel 8.0;"Dim objConn as New OleDbConnection(connstr)Dim objadap as New OleDbDataAdapter("SELECT * FROM [first$]", objconn)Dim ds as New DataSet()objconn.Open()objadap.Fill(ds, "ExcelData")dg.DataSource = ds.Tables(0).DefaultViewdg.DataBind()objconn.Close()End Sub</script> <asp:DataGrid id="dg" runat="server"Bordercolor="black"gridlines="vertical"font-names="Arial"font-size="10pt"HeaderStyle-BackColor="#FFCC00"ItemStyle-BackColor="#FFCC66"AlternatingItemStyle-BackColor="#FFFFFF"AutoGenerateColumns="True"> </asp:datagrid>以上程序提取Excel电子表格Book1的数据表First的所有数据,并且显示到一个DataGrid中。转自:http://www.ccw.com.cn/htm/center/prog/02_7_3_2.asp

原创粉丝点击