Que tal fazer uma consulta em seu banco de dados
e gerar uma planilha Excel com os dados que você selecionou?
Parece uma tarefa difícil, mas não
é. Vou mostrar como é bem simples.
As vantagens de você gerar uma planilha Excel
é poder usar os recursos de cálculos e os recursos
gráficos para gerar gráficos que o Excel possui.
Para testar este exemplo, você vai precisar
ter o Excel instalado. Eu testei este exemplo no Windows 98 com
o Personal Web Server e o Excel 97.
O pulo do gato estar em declarar no início
do seu arquivo ASP a linha que altera o tipo mime do cabeçalho
do arquivo. A linha é:
<%
Response.ContentType = "application/vnd.ms-excel"
%>
Feito isto, é só acessar a base de
dados e exibir os nomes dos cabeçalhos e das linhas na
tabela para gerar sua tabela Excel em tempo de execução.
O código que faz isto é dado a seguir:
(arquivo graficoxls.asp)
<%
Response.ContentType = "application/vnd.ms-excel"
set objconn=server.createobject("adodb.connection")
connpath= "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\teste\nwind.mdb"
objconn.Open connpath
set objrs=objconn.execute("select
CódigoDoProduto,NomedoProduto,PreçoUnitário
" & _
"from produtos where CódigoDoProduto < 20 ")
%>
<TABLE BORDER=1>
<TR>
<%
“Percorre cada campo e imprime o nome dos campos da tabela
For i = 0 to objrs.fields.count – 1
%>
<TD><% = objrs(i).name %></TD>
<% next %>
</TR>
<%
“Percorre cada linha
e exibe cada campo da tabela
while not objrs.eof
%>
<TR>
<% For i = 0 to objrs.fields.count – 1
%>
<TD VALIGN=TOP><% = objrs(i) %></TD>
<% Next %>
</TR>
<%
objrs.MoveNext
wend
objrs.Close
objconn.close
%>
</TABLE>
Nota: Você pode usar um
driver ODBC para realizar a conexão com o banco de dados
Access, mas o recomendável é usar o provedor OLE
DB. Abaixo o código para o driver ODBC:
<% set objconn=server.createobject("adodb.connection")
connpath="DBQ=" & server.mappath("nwind.mdb")
objconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; "
& connpath
set objrs=objconn.execute("select CódigoDoProduto,NomedoProduto,
" & _
PreçoUnitário from produtos where CódigoDoProduto
< 20 ")
%>
Como exemplo vou acessar a base de dados Nwind.mdb
e exibir os campos: CódigoDoProduto, NomedoProduto, PreçoUnitário
da tabela Produtos.
O resultado é exibido na figura abaixo:

Resolvi exibir somente alguns produtos para poder
mostrar o resultado do processamento da página.
Elementar, não é mesmo !!!
Até a próxima!
10 Comentários
Qual a sua opinião?