Nesta dica eu vou mostrar como podemos gerar um arquivo texto a partir de um banco de dados Access e a seguir abrir o arquivo no Excel ; tudo isto usando o seu navegador padrão para executar uma página ASP. As etapas são as seguintes:
1- Em um formulário - geratxt.htm - você informa :
2- Após clicar no botão enviar do formulário - geratxt.htm - o arquivo criaarquivo.asp será executado e teremos:
Onde : request("nometxt") é o nome do arquivo informado no formulário
filePath= Server.mapPath("\")
filename=filePath & "\" & fileExcel
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = fs.CreateTextFile(filename, True)
Set cn = Server.CreateObject("ADODB.Connection")
DB="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & request("nomebd")
SQL = " Select * from " & request("nometbl")
cn.Open DB
Ao executar o formulário geratxt.htm teremos a seguinte tela:
Após informar os valores e clicar no botão - Enviar - teremos:
Se você clicar no link - Abrir o arquivo no Excel - e a seguir em Abrir terá o arquivo exibido conforme abaixo:
O código do formulário geratxt.htm é o seguinte:
<html> <head> <title>Documento sem título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#33FFFF" text="#000066"> <form name="frmArquivo" method="post" action="criaarquivo.asp"> <h1 align="center"><font color="#0000FF" size="4" face="Verdana, Arial, Helvetica, sans-serif">Gerar Arquivo Texto</font></h1> <table width="100%" border="0" cellpadding="1"> <tr> <td width="22%"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome do arquivo Texto :</font></td> <td colspan="2"><input name="nometxt" type="text" value="Teste_1" size="50" maxlength="50"> <font color="#0033CC" size="1" face="Arial, Helvetica, sans-serif">(Informe um nome sem usar extensão)</font></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome da base de dados</font></td> <td colspan="2"><input name="nomebd" type="text" value="c:\teste\Biblio.mdb" size="50" maxlength="50"> <font color="#0033FF" size="1" face="Arial, Helvetica, sans-serif">(Informe o caminho e nome da base de dados)</font></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome da Tabela</font></td> <td colspan="2"><input name="nometbl" type="text" value="Authors" size="50" maxlength="50"> <font color="#3333FF" size="1" face="Arial, Helvetica, sans-serif">(Informe o nome da tabela na base de dados)</font></td> </tr> <tr> <td> <div align="center"> </div></td> <td width="12%"><input type="submit" name="Submit2" value="Enviar"></td> <td width="66%"><input type="reset" name="Submit" value="Limpar"></td> </tr> </table> </form> </body> </html> |
O código completo do arquivo - criaarquivo.asp - é dado a seguir:
<%@
LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Cria um arquivo texto usando o FileSystemObject que pode ser aberto no Excel</TITLE> </HEAD> <body> <% 'obtem o nome do arquivo informado fileExcel = request("nometxt") & ".xls" 'Substitua a barra invertica (\) pelo nome do seu diretorio virtual. 'a barra invertida indica que o arquivo vai ser procurado em wwwroot filePath= Server.mapPath("\") filename=filePath & "\" & fileExcel 'Cria o arquivo com extensão .xls usando o objeto FileSytemObject 'Se o arquivo não exisitir o parametro TRUE irá permitir a sua criacao 'Esteja certo que o usuario tenha permissao para escrita no diretorio onde o 'arquivo vai ser criado Set fs = Server.CreateObject("Scripting.FileSystemObject") Set MyFile = fs.CreateTextFile(filename, True) 'Abre a conexão e retorna os dados do banco de dados Set cn = Server.CreateObject("ADODB.Connection") 'Estou usando um provedor OLE DB para efetuar a conexao com o arquivo 'voce pode usar um DSN ( a linha comentada mostra a sintaxe para a conexao) 'cn.Open "DSN=dsn_biblio;UID=;PWD=;DATABASE=Biblio" DB="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & request("nomebd") SQL = " Select * from " & request("nometbl") cn.Open DB Set rs = cn.Execute(SQL) strLine="" 'incializa a variavel para armazenar o nome dos campos For each x in rs.fields 'separa os nomes dos campos com um tab para que eles possam aparecer me colunas diferentes no Excel strLine= strLine & x.name & chr(9) Next 'escreve a string no arquivo |
O código esta comentado e eu vou ficando por aqui...
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: