你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介│广告服务│读者反馈│编程社区  
合订本订阅
 
 
您的位置:技术专栏 / 数据库开发
如何使用 ASP.NET、ADO.NET 和 Visual Basic .NET 查询和显示 Excel 数据
 

概要

本分步指导文章演示了如何使用 Visual Basic .NET 通过 ASP.NET (.aspx) 页来显示 Excel 电子表格中的数据。

创建示例 Excel 工作表

1.

启动 Microsoft Excel,然后创建一个新的工作表。

2.

将以下信息添加到新工作表中以创建一个简单的 Excel 数据库:

 

A

B

1

FirstName

LastName

2

Scott

Bishop

3

Katie

Jordan


注意:虽然在本示例中数据是从单元格 A1 开始的,但是您可以将此数据添加到工作表中的任何邻接的单元格中。

3.

突出显示此数据所在的行和列。

4.

在“插入”菜单上,指向“名称”,然后单击“定义”。

5.

在“当前工作簿中的名称”文本框中,键入 myRange1,然后单击“确定”。

6.

在“文件”菜单上,单击“保存”。在“保存位置”列表中,选择 Web 服务器的根目录(通常为 C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入 ExcelData.xls。单击“保存”。

7.

在“文件”菜单上,单击“退出”。

 

使用 Visual Basic .NET 创建 ASP.NET 示例

此代码示例说明如何查询和显示 Excel 工作表中的信息。以下代码使用您在上一节中创建的工作表。

1.

打开 Microsoft Visual Studio .NET。将显示 Visual Studio .NET 集成设计环境 (IDE)。

2.

在“文件”菜单上,指向“新建”,然后单击“项目”。

3.

在“新建项目”对话框的“项目类型”下面,单击“Visual Basic 项目”。在“模板”下面,单击“ASP.NET Web 应用程序”。

4.

在“新建项目”对话框中,找到“名称”和“位置”文本框。请注意,“名称”框不可用(它显示为灰色或变暗)。“位置”文本框包含以下文本(或类似的文本):

http://localhost/WebApplication1

将“位置”文本框中的文本替换为 http://localhost/ExcelCSTest,然后单击“确定”。此时将创建一个新项目,其中包括一个名为 WebForm1.aspx 的 Web 窗体。

5.

在 Visual Studio .NET IDE 中,找到“解决方案资源管理器”窗口。如果找不到该窗口,请单击“视图”菜单上的“解决方案资源管理器”。

6.

在解决方案资源管理器中,右键单击“WebForm1.aspx”,然后单击“视图设计器”以显示用于设计页面外观的设计器。可以使用该设计器,添加控件并处理页面的外观。

7.

查找工具箱。根据您的“IDE 选项”设置,工具箱可能以窗口或按钮的形式出现(通常出现在 IDE 的左侧)。如果找不到工具箱,请单击“视图”菜单上的“工具箱”。

如果工具箱以按钮的形式出现,将指针移动到该按钮上以显示工具箱的内容。

8.

当 Web 窗体的设计器视图处于活动状态时,工具箱被划分为几部分,其中包括 Web 窗体、组件、HTML 和其他部分。单击 Web 窗体部分。

9.

在工具箱的 Web 窗体部分,单击“DataGrid”,然后将其拖到 WebForm1 的设计器上。

10.

右键单击“WebForm1.aspx”,然后单击“查看代码”以显示代码隐藏页的源代码。

11.

将以下语句添加到代码隐藏页的顶端“Public Class WebForm1”文本的上方:

Imports System.Data Imports System.Data.OleDb

12.

突出显示以下代码,右键单击该代码,然后单击“复制”。在 WebForm1.aspx.vb 页中,将该代码粘贴到“Page_Load”事件中:

' Create variables that are used in code sample. Dim i, j As Integer ' Create connection string variable. Modify the "Data Source" parameter as ' appropriate for your environment. Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & Server.MapPath("../ExcelData.xls") _ & ";" & "Extended Properties=Excel 8.0;" ' Create the connection object by using the preceding connection string. Dim objConn As New OleDbConnection(sConnectionString) ' Open connection with the database. objConn.Open() ' The code to follow uses a SQL SELECT command to display the data from the worksheet. ' Create new OleDbCommand to return data from worksheet. Dim objCmdSelect As New OleDbCommand("SELECT * FROM myRange1", objConn) ' Create new OleDbDataAdapter that is used to build a DataSet ' based on the preceding SQL SELECT statement. Dim objAdapter1 As New OleDbDataAdapter() ' Pass the Select command to the adapter. objAdapter1.SelectCommand = objCmdSelect ' Create new DataSet to hold information from the worksheet. Dim objDataset1 As New DataSet() ' Fill the DataSet with the information from the worksheet. objAdapter1.Fill(objDataset1, "XLData") ' Build a table from the original data. DataGrid1.DataSource = objDataset1.Tables(0).DefaultView DataGrid1.DataBind() ' Clean up objects. objConn.Close()

13.

在“文件”菜单中,单击“全部保存”来保存项目文件。

14.

在“生成”菜单上,单击“生成 ExcelVBTest”以生成项目。这就准备好了代码隐藏页中的代码,使之能够执行了。

15.

在解决方案资源管理器中,右键单击“WebForm1.aspx”,然后单击“在浏览器中查看”以运行代码。

 

其他代码说明

本文中的示例代码使用 Microsoft Jet OLE DB 提供程序访问 Excel 工作表。此代码使用以下连接字符串连接到工作表:

' Create connection string variable. Modify the "Data Source" parameter as ' appropriate for your environment. Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & Server.MapPath("../ExcelData.xls") _ & ";" & "Extended Properties=Excel 8.0;"

正如注释中所描述的那样,必须修改特定 Excel 工作表的路径信息。此外,还必须设置 Extended Properties 参数的值,以便正确地连接到文件。

注意,连接字符串使用 Server.MapPath 函数。此函数使用文件相对于 Microsoft Internet 信息服务 (IIS) 的路径,并返回该文件的硬盘路径。例如,在创建示例 Excel 工作表 部分中,您在 Web 根目录中创建了 ExcelData.xls,该目录通常位于 C:\Inetpub\Wwwroot。这还在 Wwwroot 文件夹中创建了一个名为 ExcelVBTest 的子文件夹,并在 ExcelVBTest 文件夹中创建一个名为 WebForm1.aspx 的文件。

在本示例中,这两个文件的硬盘路径如下所示:

C 驱动器 - Inetpub - Wwwroot(其中包含 ExcelData.xls) - ExcelVBTest(其中包含 WebForm1.aspx)

文件的 IIS 路径如下所示:

Web 根目录(其中包含 ExcelData.xls) - ExcelVBTest(其中包含 WebForm1.aspx)

在本例中,WebForm1.aspx 页到 ExcelData.xls 文件的相对 路径为“../ExcelData.xls”。“../”字符通知 IIS 转到上一级文件夹。因此,代码

Server.MapPath("../ExcelData.xls")

返回以下字符串:

C:\Inetpub\Wwwroot\ExcelData.xls

您无需使用 Server.MapPath。您也可以将此信息硬编码为一个特定的路径,或使用任何方法提供该 Excel 文件在硬盘上的位置。

参考

有关如何使用 ASP.NET 访问 Excel 文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

307021 (http://support.microsoft.com/kb/307021/) 如何使用 Visual Basic .NET 向 Microsoft Excel 2002 传输 XML 数据

306022 (http://support.microsoft.com/kb/306022/) 如何使用 Visual Basic .NET 向 Excel 工作簿传输数据

有关使用 ADO.NET 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

301075 (http://support.microsoft.com/kb/301075/) 如何使用 ADO.NET 和 Visual Basic .NET 连接到数据库并运行命令

301216 (http://support.microsoft.com/kb/301216/) 如何使用 Visual Basic .NET 从数据库填充 DataSet 对象

301248 (http://support.microsoft.com/kb/301248/) 如何使用 Visual Basic .NET 从 DataSet 对象更新数据库

注意:此处作为示例举出的公司、组织、产品、域名、电子邮件地址、徽标、人名、地名和事件完全是虚构的。决无意影射,也不应由此臆测任何真实的公司、组织、产品、域名、电子邮件地址、徽标、人名、地名和事件。

 (转自 :MSDN)(编辑:Alex)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089