Sei sulla pagina 1di 4

ASP.

NET - Lendo planilhas do Excel Page 1 of 4

ASP.NET - Lendo planilhas do Excel

Podemos facilmente ler dados de planilhas do Excel e exib-las em pginas na Web. Como ?? Com ASP.NET claro. Veja
como simples...

Suponha que voc tenha uma planilha Excel chamada teste.xls no diretrio c:\teste com os seguintes dados:

Voc quer exibir os dados da planilha em uma pgina na internet e quer tambm exibir dados com filtro pelo estado do
cliente. ? E ento ??

Para resolver este problema a primeira coisa a fazer um ajuste na tabela Excel. Calma , nada complicado. Voc deve
apenas selecionar os dados que deseja exibir ( lembrando que a primeira linha ser tomado como o cabealho da tabela)
e usar a propriedade Range para dar um nome ao conjunto de clulas selecionada. Este nome ser tomado como nome
da nossa 'tabela' de dados. Voc ento usa um provedor OLE DB e faz o acesso aos dados normalmente. Simples !! no
mesmo ???

Selecione as clulas da planilha teste.xls e no menu Inserir do Excel selecione Nome e a seguir Definir:(ver figura abaixo)

Informe o nome para a seleo. Vou usar o nome Agenda. Este nome ser a nossa tabela'.

http://www.macoratti.net/aspn_xls.htm 1/2/2009
ASP.NET - Lendo planilhas do Excel Page 2 of 4

Pronto ! Agora s criar uma pgina asp.net chamada Excel.aspx e nela definir dois controles datagrid e dois controles
labels para exibir os dados da planilha. Os controles usados so:

 dtgAgenda1
 dtgAgenda2
 lblSQL1
 lblSQL2

O cdigo o seguinte :

<html>
<head>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label ID="lblSql1" Runat="server" />
<asp:DataGrid ID="dtgAgenda1" Runat="server"
HeaderStyle-BackColor="Red"
HeaderStyle-ForeColor="White"
HeaderStyle-Font-Name="Verdana"
HeaderStyle-Font-Size="10"
ItemStyle-BackColor="Cyan"
ItemStyle-Font-Name="Verdana"
ItemStyle-Font-Size="10"
CellPadding="4"
GridLines="Both" />
<p></p>
<asp:Label ID="lblSql2" Runat="server" />
<asp:DataGrid ID="dtgAgenda2" Runat="server"
HeaderStyle-BackColor="Red"
HeaderStyle-ForeColor="White"
HeaderStyle-Font-Name="Verdana"
HeaderStyle-Font-Size="10"
ItemStyle-BackColor="Cyan"
ItemStyle-Font-Name="Verdana"
ItemStyle-Font-Size="10"
CellPadding="4"
GridLines="Both" />
</form>
</body>
</html>

http://www.macoratti.net/aspn_xls.htm 1/2/2009
ASP.NET - Lendo planilhas do Excel Page 3 of 4
A seguir e s fazer o acesso a 'tabela' Agenda que representa o conjunto de clulas da planilha teste.xls ; usando
instrues SQL , basta selecionar os dados que queremos exibir. Veja o cdigo para isso:

<%@ Import Namespace="System.Data" %>


<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head>

<script language="VB" runat="server">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


Dim strConn As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
& "data source=c:\teste\teste.xls;" _
& "Extended Properties=Excel 8.0;"
'Primeiro DataGrid - vou exibir todos os dados da planilha
Dim objConn As New OleDbConnection(strConn)
Dim strSql As String = "Select Nome, Endereco, Cidade, Cep , UF From Agenda"
lblSql1.Text = strSql

Dim objCmd As New OleDbCommand(strSql, objConn)

Try
'abre a conexo com a fonte de dados e executa a consulta SQL para retornar os dados e vinculando-os ao datagrid1
objConn.Open()
dtgAgenda1.DataSource = objCmd.ExecuteReader()
dtgAgenda1.DataBind()
Catch exc As Exception
Response.Write(exc.ToString())
Finally
objConn.Dispose()
End Try

'Segundo DataGrid - vou exibir os dados filtrados por UF


objConn = New OleDbConnection(strConn)
strSql = "Select * From Agenda Where UF='SP'"
lblSql2.Text = strSql

objCmd = New OleDbCommand(strSql, objConn)


Try
'abre a conexo com a fonte de dados e executa a consulta SQL para retornar os dados e vinculando-os ao datagrid2
objConn.Open()
dtgAgenda2.DataSource = objCmd.ExecuteReader()
dtgAgenda2.DataBind()
Catch exc As Exception
Response.Write(exc.ToString())
Finally
objConn.Dispose()
End Try
End Sub

</script>

A linha de cdigo que faz o acesso a 'tabela' que representa a planilha Excel :

Dim strConn As String = "Provider=Microsoft.Jet.OleDb.4.0;" _


& "data source=c:\teste\teste.xls;" _
& "Extended Properties=Excel 8.0;"
Perceba que estamos usando um provedor OLE DB e informando como fonte de dados (Data source) o caminho e o nome
da planilha : teste.xls.

Rodando o projeto na mquina local ( com IIS configurado) temos:

http://www.macoratti.net/aspn_xls.htm 1/2/2009
ASP.NET - Lendo planilhas do Excel Page 4 of 4

Voil ! Dados de uma planilha Excel em pginas Web sem complicao !!!

Pegue o cdigo do arquivo Excel.aspx

At mais ver...

Jos Carlos Macoratti

http://www.macoratti.net/aspn_xls.htm 1/2/2009

Potrebbero piacerti anche