ASP.NET 实现读取与显示Excel数据代码示例
166 浏览量
更新于2024-08-31
收藏 145KB PDF 举报
"ASP.NET 实现读取并显示Excel数据的代码示例"
在ASP.NET中,有时我们需要从Excel文件中读取数据并在网页上显示。这个任务可以通过使用多种库和方法来完成,其中一个常见的方法是使用ADO.NET连接到Excel工作簿。下面的代码示例演示了如何在ASP.NET页面中实现这一功能。
首先,用户需要将Excel文件上传到服务器。这通常通过HTML表单和文件上传控件来实现。以下是一个简单的上传表单的HTML部分:
```html
<form id="form1" runat="server">
<div>
<table style="padding: 5px;font-size: 11px;" align="center" border="0">
<tbody>
<tr>
<td>
<strong>请选择包含工作详情的Excel文件...</strong>
</td>
</tr>
<tr>
<td>
<input type="file" id="excelFile" name="excelFile" />
<input type="submit" value="上传并读取数据" />
</td>
</tr>
</tbody>
</table>
</div>
</form>
```
接下来,我们需要处理文件上传并在服务器端读取Excel数据。在VB.NET中,这可以通过`System.Data.OleDb`命名空间中的`OleDbConnection`和`OleDbCommand`类来完成。以下是一段VB.NET代码示例,展示了如何读取Excel数据:
```vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
' 清除已有的数据显示
GridView1.DataSource = Nothing
GridView1.DataBind()
Else
If Request.Files.Count > 0 Then
Dim excelFile As HttpPostedFile = Request.Files("excelFile")
If Not String.IsNullOrEmpty(excelFile.FileName) Then
' 检查文件是否为Excel格式
If (Path.GetExtension(excelFile.FileName).ToLower() = ".xls" OrElse Path.GetExtension(excelFile.FileName).ToLower() = ".xlsx") Then
' 保存上传的文件
excelFile.SaveAs(Server.MapPath("~/Uploads/") & excelFile.FileName)
' 构建数据库连接字符串
Dim connString As String = Nothing
If excelFile.FileName.EndsWith(".xls", StringComparison.OrdinalIgnoreCase) Then
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/Uploads/") & excelFile.FileName & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"";"
ElseIf excelFile.FileName.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase) Then
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("~/Uploads/") & excelFile.FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"
End If
' 创建并打开数据库连接
Using conn As New OleDbConnection(connString)
conn.Open()
' 获取第一个工作表的名称
Dim sheetName As String = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing).Rows(0)("TABLE_NAME")
' 创建SQL查询
Dim sql As String = "SELECT * FROM [" & sheetName & "]"
' 创建并执行SQL命令
Using cmd As New OleDbCommand(sql, conn)
Dim adapter As New OleDbDataAdapter(cmd)
Dim dt As New DataTable()
adapter.Fill(dt)
' 绑定数据到GridView
GridView1.DataSource = dt
GridView1.DataBind()
End Using
conn.Close()
End Using
Else
' 显示错误信息:不是有效的Excel文件
Response.Write("上传的文件不是有效的Excel文件,请重新选择。")
End If
End If
End If
End If
End Sub
```
这段代码首先检查上传的文件是否为Excel格式,然后保存文件到服务器的特定目录。接着,它根据文件的扩展名(`.xls` 或 `.xlsx`)构建相应的OleDb连接字符串,并打开连接。然后,它获取Excel文件的第一个工作表的名称,构造SQL查询,并执行查询以填充一个`DataTable`。最后,这个数据绑定到一个名为`GridView1`的数据控件,用于在网页上显示数据。
请注意,这个示例仅处理第一个工作表,并且没有处理可能出现的异常。在实际应用中,你应该添加适当的错误处理和验证,确保文件安全性和数据完整性。此外,对于大量的数据,考虑使用分页或其他优化技术,以提高性能和用户体验。
201 浏览量
547 浏览量
1441 浏览量
108 浏览量
195 浏览量
231 浏览量
2020-10-26 上传
249 浏览量
235 浏览量

weixin_38732811
- 粉丝: 6
最新资源
- Spring开发指南:V0.8预览版 - 持久层、Web工作流与AOP详解
- 精通Eclipse插件开发:从入门到实践
- DB2驱动的联系人信息管理系统数据库设计与实现
- Struts开发步骤详解:从创建工程到数据操作
- C#编程入门与进阶指南
- C#面试必备:核心概念与题目解析
- ESRI Shapefile格式详解:专业地理信息存储标准
- Hibernate缓存机制详解:事务、进程与集群范围
- Java正则表达式完全指南
- 整合STRUTS、SPRING与HIBERNATE实践笔记
- Oracle函数详解:SQL指令与字符串操作
- JAVA数据库编程详解:连接、操作与事务处理
- Java取余操作谜题:解析isOdd方法的陷阱
- 高质量C++/C编程规范与指南
- 计算机网络习题解析与解答
- 配置多节点JBoss服务器:端口修改指南