Desenvolvimento - ASP
ASP - Gerando planilhas no Excel
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.
por José Carlos MacorattiQue 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 está em declarar no início do seu arquivo ASP a linha que altera o tipo mime do cabeçalho do arquivo. A linha é :
Listagem 1: Alterando tipo mime do cabeçalho
<% 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 )
Listagem 2: Acessando obanco e exibindo os cabeçalhos
<% 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:
Listagem 3: Utilizando 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:
Figura 1: Planilha gerada
Resolvi exibir somente alguns produtos para poder mostrar o resultado do processamento da página.
Elementar, não é mesmo !!!
Até a próxima dica ASP...