手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net 读取并显示excel数据的实现代码
asp.net 读取并显示excel数据的实现代码
摘要:我们的ASP页面将在远程服务器上,来读取我们的桌面Excel文件。首先,我们必须把它上传到远程服务器,然后retrive数据。因此,我们首先...

我们的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 align="center" border="0">

<tbody>

<tr>

<td>

<strong>Please Select Excel file containing job details…</strong>

</td>

</tr>

<tr>

<td>

<div>

<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的$]是两个不同的查询。

asp.net 读取并显示excel数据的实现代码1

复制代码 代码如下:

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数据的实现代码2

以上就是使用asp.net读取并显示excel数据

【asp.net 读取并显示excel数据的实现代码】相关文章:

asp.net 参数不同共用一个页面的实现方法

litjson读取数据示例

asp.net 操作excel的实现代码

.Net 文本框实现内容提示的实例代码

asp.net SqlHelper数据访问层的使用

asp.net datalist绑定数据后可以上移下移实现示例

asp.net web大文件上传带进度条实例代码

asp.net微软图表控件使用示例代码分享

asp.net 文章内容分页显示的代码

asp.net下获取Excel所有的工作表名称

精品推荐
分类导航