我们的ASP页面将在远程服务器上,来读取我们的桌面Excel文件。首先,我们必须把它上传到远程服务器,然后retrive数据。因此,我们首先设计一个表格,上传到服务器。我们必须从文件retrive数据,再一次,所以我们将重新命名Excel,然后上传。
复制代码 代码如下:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Read and Display Data From an Excel File (.xsl or .xlsx) in ASP.NET</title>
<style type="text/css">
tr.sectiontableentry1 td,
tr.sectiontableentry2 td {
padding: 4px;
}
tr.sectiontableentry1 td {
padding: 8px 5px;
background: url(hline.gif) repeat-x bottom;
}
tr.sectiontableentry2 td {
padding: 8px 5px;
background: url(hline.gif) repeat-x bottom #F2F2F2;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="padding: 5px; font-size: 11px;" align="center" border="0">
<tbody>
<tr>
<td>
<strong>Please Select Excel file containing job details…</strong>
</td>
</tr>
<tr>
<td>
<div style="background: url(hline.gif) repeat-x bottom #F2F2F2;padding: 8px 5px;border-bottom: 1px solid #ccc;">
<asp:FileUpload ID="txtFilePath" runat="server"></asp:FileUpload>
<asp:Button ID="btnUpload" runat="server" Text="Upload" /><br />
<asp:Label ID="lblMessage" runat="server" Visible="False" Font-Bold="True"
ForeColor="#009933"></asp:Label>
</div>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="dtgJobs" runat="server">
<RowStyle CssClass="sectiontableentry2" />
<AlternatingRowStyle CssClass="sectiontableentry1" />
</asp:GridView>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</body>
</html>
连接使用Microsoft OLE DB提供的Excel jet
在Microsoft OLE DB提供用于Jet(联合发动机技术站是一个数据库引擎)提供的OLE DB接口,Microsoft Access数据库,并允许SQL Server 2005和更高分布式查询来查询Access数据库和Excel电子表格。我们将连接到Microsoft Excel工作簿使用Jet 4.0的Microsoft OLE DB提供,
读取数据,然后显示在GridView中的数据。
xlsx(Excel 2007年)载有提供者Microsoft.ACE.OLEDB.12.0。这是新的Access数据库引擎的OLE DB驱动程序,也是阅读Excel 2003的能力。我们将用它来阅读xlsx(Excel 2007年)的数据。
我们有一个Excel文件,其内容如下所示。注意:此表名称必须相同,意味着,如果想读的Sheet1的数据。你必须小心,同时书面方式的SQL查询,因为选择*从[Sheet1的$]和SELECT *从[Sheet1的$]是两个不同的查询。
复制代码 代码如下:
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click
If (txtFilePath.HasFile) Then
Dim conn As OleDbConnection
Dim cmd As OleDbCommand
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim query As String
Dim connString As String = ""
Dim strFileName As String = DateTime.Now.ToString("ddMMyyyy_HHmmss")
Dim strFileType As String = System.IO.Path.GetExtension(txtFilePath.FileName).ToString().ToLower()
‘Check file type
If strFileType.Trim = ".xls" Or strFileType.Trim = ".xlsx" Then
txtFilePath.SaveAs(Server.MapPath("~/UploadedExcel/" & strFileName & strFileType))
Else
lblMessage.Text = "Only excel files allowed"
lblMessage.ForeColor = Drawing.Color.Red
lblMessage.Visible = True
Exit Sub
End If
Dim strNewPath As String = Server.MapPath("~/UploadedExcel/" & strFileName & strFileType)
‘Connection String to Excel Workbook
If strFileType.Trim = ".xls" Then
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNewPath & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"""
ElseIf strFileType.Trim = ".xlsx" Then
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strNewPath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2"""
End If
query = "SELECT * FROM [Sheet1$]"
‘Create the connection object
conn = New OleDbConnection(connString)
‘Open connection
If conn.State = ConnectionState.Closed Then conn.Open()
‘Create the command object
cmd = New OleDbCommand(query, conn)
da = New OleDbDataAdapter(cmd)
ds = New DataSet()
da.Fill(ds)
grvExcelData.DataSource = ds.Tables(0)
grvExcelData.DataBind()
da.Dispose()
conn.Close()
conn.Dispose()
Else
lblMessage.Text = "Please select an excel file first"
lblMessage.ForeColor = Drawing.Color.Red
lblMessage.Visible = True
End If
End Sub
C#.NET Code
复制代码 代码如下:
protected void btnUpload_Click(object sender, EventArgs e)
{
if ((txtFilePath.HasFile))
{
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
string query = null;
string connString = "";
string strFileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");
string strFileType = System.IO.Path.GetExtension(txtFilePath.FileName).ToString().ToLower();
//Check file type
if (strFileType == ".xls" || strFileType == ".xlsx")
{
txtFilePath.SaveAs(Server.MapPath("~/UploadedExcel/" + strFileName + strFileType));
}
else
{
lblMessage.Text = "Only excel files allowed";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
return;
}
string strNewPath = Server.MapPath("~/UploadedExcel/" + strFileName + strFileType);
//Connection String to Excel Workbook
if (strFileType.Trim() == ".xls")
{
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
else if (strFileType.Trim() == ".xlsx")
{
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}
query = "SELECT * FROM [Sheet1$]";
//query = "SELECT [Country],[Capital] FROM [Sheet1$] WHERE [Currency]='Rupee'"
//query = "SELECT [Country],[Capital] FROM [Sheet1$]"
//Create the connection object
conn = new OleDbConnection(connString);
//Open connection
if (conn.State == ConnectionState.Closed) conn.Open();
//Create the command object
cmd = new OleDbCommand(query, conn);
da = new OleDbDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
grvExcelData.DataSource = ds.Tables[0];
grvExcelData.DataBind();
lblMessage.Text = "Data retrieved successfully! Total Records:" + ds.Tables[0].Rows.Count;
lblMessage.ForeColor = System.Drawing.Color.Green;
lblMessage.Visible = true;
da.Dispose();
conn.Close();
conn.Dispose();
}
else
{
lblMessage.Text = "Please select an excel file first";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
}
}
使用上面的代码进行测试,得到的结果如下所示:
以上就是使用asp.net读取并显示excel数据
相关推荐:
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
SEO选择:如何挑选最合适的SEO优化策略?,wb免费刷粉网站推广
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
文章AI排版,让创作更高效的秘密武器
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
在线AI文章生成:智能写作的无限可能
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
未来写作新方式原创AI文章的无限可能
怎样利用AI写文章,轻松提升写作效率
ChatGPT安装包Windows版-让智能助手触手可得,q和ai
ChatGPT付款被拒?如何应对与解决常见支付问题,掉包ai
什么是seo公司口碑,seo品牌 ,ai大模型训练是什么意思
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
ChatGPT无服务:如何突破限制,未来人工智能的新可能,ai绘制装饰画
seo都有什么意思,seo 啥意思 ,ai园林
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
ChatGPT403:引领人工智能新时代,颠覆你的工作与生活方式,ai nak
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
WPJVX:开启数字化未来的智慧平台,关键词排名技术咨询乐云seo
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家
为什么“未备案域名”会成为互联网行业中的重要问题?,江干区seo优化价格
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
URL泄露:如何防止信息泄露带来的严重后果,抖音推广营销服务多少钱
ChatGPT网页打不开?快来看看这些解决办法,轻松恢复正常访问!,ai金色包装
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
整理文章的AI:提升写作效率的智能助手
ChatGPT进不去怎么办?解决方案与技巧,轻松畅享智能对话,ai va
优化整站,让网站飞速增长,打造行业竞争力,广东网站建设与维护
AI网页版本:开启智能时代的新篇章,拼音标调ai
WPS改写-轻松提升文档创作效率的秘密武器,推广网站的优势
在线AI文章生成器开启智能创作新时代
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
好用的AI写作软件免费推荐:创作新境界!
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
撰写稿子的AI,写作的“超级助手”来了!
ChatGPT打不开实时问题解决方案:让你的AI助手始终在线,psd 转ai
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
SEO优化排名:让您的网站在搜索引擎中脱颖而出,我ai 达瓦仓决
SEO代做:让你的企业轻松登顶搜索引擎,快速提升曝光率,seo 提高注册量
SEO量:提升网站流量和排名的关键法则,德兴seo
用AI批量下载工具,高效管理你的文件和资源