ASP.NET 实现读取与显示Excel数据代码示例
92 浏览量
更新于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`的数据控件,用于在网页上显示数据。
请注意,这个示例仅处理第一个工作表,并且没有处理可能出现的异常。在实际应用中,你应该添加适当的错误处理和验证,确保文件安全性和数据完整性。此外,对于大量的数据,考虑使用分页或其他优化技术,以提高性能和用户体验。
2011-06-24 上传
2019-03-01 上传
111 浏览量
2021-01-01 上传
点击了解资源详情
107 浏览量
2021-01-01 上传
2014-06-11 上传
2020-10-27 上传
weixin_38732811
- 粉丝: 6
- 资源: 958
最新资源
- snake-js:带有Javascript和HTML5的Snake
- badges-and-schedules:熨斗学校实验室
- ArtCenterGame
- mywonkysounds:SoundManger 2 音板! 我的声音!
- birdinginvermont.com
- Usso:sso统一登录系统
- Design-Algorithm-Homework
- MonadicRP:GHC Haskell中的相对论编程
- monolithic-sample
- vue-shop:Vue + Element UI电商后台管理系统演示
- Neurotypical-mode:一种Chrome扩展程序,可关闭除Microsoft Stream或Manaba之外的所有选项卡
- observ-conference:实验
- module-blog-graph-ql:Magento 2 Blog GraphQL扩展。 为Magefan博客模块提供GraphQL端点
- Excel模板00现金日记账.zip
- Naive-Bayes-Classifier
- SmartFactory