Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gotaum

[Resolvido] Como exportar tabela sql em CSV

Recommended Posts

Olá pessoal,

 

eu tenho uma página chamada cadastro.asp, e ela exibe todos os dados da minha tabela cadastro, e agora surgiu a necessidade de salvar essa tabel em csv, alguém pode me ajudar? Nem imagino por onde começar.

 

Segue código:

 

<% dim strconn
sub abre_conectar
set strconn=server.CreateObject("adodb.connection")
'Abrimos uma conexão com o banco de dados - [IMPORTANTE] altere os dados abaixo com as informações de sua base de dados
strconn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=**********;PORT=3306;DATABASE=*******;USER=*******;PASSWORD=*****
**;OPTION=3;")
end sub
sub fecha_conectar
	 strconn.close
	 Set strconn = nothing
end sub %>

<html>
<head>
<title>Consulta</title>


</head>

<body>
<%
call abre_conectar

sql = "SELECT * FROM newsletter "
set rs = strconn.execute(sql)
%>

<table>
<tr>
<td>Nome</td>
<td>Email</td>
<td>Dia</td>
<td>Mês</td>
<td>Ano</td>
<td>Sexo</td>
<td>DDD</td>
<td>Telefone</td>
<td>Como Soube?</td>
</tr>
<tr>
<%while not rs.eof%>
<td><%=rs("newsletter_nome")%></td>
<td><%=rs("newsletter_email")%></td>
<td><%=rs("newsletter_dia")%></td>
<td><%=rs("newsletter_mes")%></td>
<td><%=rs("newsletter_ano")%></td>
<td><%=rs("newsletter_sexo")%></td>
<td><%=rs("newsletter_ddd")%></td>
<td><%=rs("newsletter_tel")%></td>
<td><%=rs("newsletter_como")%></td>
</tr>
<%rs.MoveNext
  Wend

call fecha_conectar
set rs = nothing%>
</table>
</body>
</html>

fim do código...

 

essa página está hospedada e funcionando.

 

só preciso que tenha esse botão salvar como e que ele salve o arquivo em csv.

 

valeu a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom no MySql tem a opção de exportar para "Dados CSV " ... Abraçossss

 

Eu sei que esta opção existe, mas eu quero que quem acesse essa página possa salvar esse csv em qulaquer computador, pra que ele possa acrescentar os nomes em uma lista de mala direta ou seja lá o que for, e para isso eu preciso adicionar um botão salvar e com isso ele possa salvar o arquivo em sua própria máquina.

 

Valeu a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother desculpe mas ñ consegui entender exatamente o q você quer ... Veja se é o q eu entendi ...

 

você quer q o usuário salve esta lista q você está exibindo em seu próprio computador, ou seja apenas exportar e salvar na sua máquina ???

 

Agora a parte de ele acrescentar o nome em uma lista de mala - direta ñ entendi bulufas ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother desculpe mas ñ consegui entender exatamente o q você quer ... Veja se é o q eu entendi ...

 

você quer q o usuário salve esta lista q você está exibindo em seu próprio computador, ou seja apenas exportar e salvar na sua máquina ???

 

Agora a parte de ele acrescentar o nome em uma lista de mala - direta ñ entendi bulufas ...

 

é o seguinte... eu tenho o site pronto em flash com esse sistema cadastrado em asp e mysql, tudo funcionando.

 

o meu cliente já tem um site de mala direta com arquivos em csv,

eu quero que o meu cliente possa acessar essa página que eu coloquei acima e a partir dessa página possa salvar em seu computador o arquivo de cadastros em csv, e depois coloque no site de mala diretas dele esse mesmo arquivo que ele salvou.

 

meu cliente é um usuário comum de pc, sendo assim eu quero auxiliá-lo com essa página.

 

A minha dificuldade é acrescentar um botão à esta página e em seguida a ação desse botão salvar no computador do cliente um arquivo csv.

 

Acho que agora ta bem explicadinho.

 

valeu o esforço ai cara.

 

<% Option Explicit %>
<html>
<head>
<title>CSV Export</title>
</head>

<body>
<%

Dim DSNtemp,Conn,RS,action,arrTables,intTable,i,j,x,y,strFields,objFSO,objFile,strLi
ne


DSNtemp="DRIVER={MySQL ODBC 3.51 Driver};SERVER=smtp;PORT=3306;DATABASE=nome_do_banco;USER=login;PASSWORD=senha;O
PTION=3;"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open DSNtemp,"login","senha"

action = Request("action")

Set RS = Conn.Execute("SELECT * FROM newsletter")
Do While Not RS.EOF
 If Instr(Request(arrTables(intTable)), ",") > 0 or Request(arrTables(intTable)) = "*" Then
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "," & Left(RS(1),10) & "<BR>" & VbCrLf
 Else
  Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""" & j & """>" & Left(RS(0),10) & "<BR>" & VbCrLf
 End If
 RS.MoveNext
 j = j + 1
Loop
Response.Write "<input type=""checkbox"" name=""" & arrTables(intTable) & "_rec"" value=""ALL"">Todos registros<BR>" & VbCrLf
Response.Write "<BR><input type=""submit"" value=""Next >>"">"
RS.Close
Set RS = Nothing



If action = "getrecords" and Request("next") = "end" Then
Dim arrRecs,strOutput
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
arrTables = Split(Request("tables"), ",")
strOutput = Server.MapPath(".") & "\"  '<-- Edit this to change your output directory

For i = LBound(arrTables) to UBound(arrTables)
 Set objFile = objFSO.CreateTextFile(strOutput & Trim(arrTables(i)) & ".csv")
 Set RS = Conn.Execute("SELECT " & Request(arrTables(i)) & " FROM " & arrTables(i))
 strLine = ""

 If Instr(Request(arrTables(i)),"*") = 0 Then
  objFile.WriteLine Replace(Request(arrTables(i)), " ", "")
 Else
  For j = 0 to RS.Fields.Count-1
   strLine = strLine & RS.Fields(j).Name
   If j < RS.Fields.Count-1 Then strLine = strLine & ","
  Next
  objFile.WriteLine strLine
 End If

 If Instr(Request(arrTables(i) & "_rec"), "ALL") <> 0 Then
  Do While Not RS.EOF
   strLine = ""
   For j = 0 to RS.Fields.Count-1
	If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	If j < RS.Fields.Count-1 Then strLine = strLine & ","
   Next
   objFile.WriteLine strLine
   RS.MoveNext
  Loop
 Else
  arrRecs = Split(Replace(Request(arrTables(i) & "_rec")," ",""),",")
  x = 0
  y = 0

  Do While Not RS.EOF
   strLine = ""
   If Not x > UBound(arrRecs) Then
	If y = Int(arrRecs(x)) Then
	 For j = 0 to RS.Fields.Count-1
	  If Not IsNull(RS(j)) Then strLine = strLine & Chr(34) & Replace(RS(j), Chr(34), Chr(34) & Chr(34)) & Chr(34)
	  If j < RS.Fields.Count-1 Then strLine = strLine & ","
	 Next
	 objFile.WriteLine strLine
	 x = x + 1
	End If
   End If
   y = y + 1
   RS.MoveNext
  Loop
 End If

 objFile.Close
 Set objFile = Nothing
Next
Response.Write "Concluido.<BR>" & VbCrLf
For i = LBound(arrTables) to UBound(arrTables)
 Response.Write "Criado: " & Server.MapPath(".") & "\" & Trim(arrTables(i)) & ".csv" & "<BR>" & VbCrLf
Next
End If
%>
</body>

esse code acima funciona perfeitamente, mas obriga o usuário a escolher tabela, depois campos e por fim quais os cadastros, eu quero saber se alguém pode fazer ele ir direto pra parte de salvar.

que fica no final, essa tabela sempre será 100% salva, mesmo que não tenha havido alterações.

 

obrigado a todos pelo esforço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa subir o tópico, mas eu coloquei outras coisas no fim do dia, e preciso disso com urgencia... meu emprego ainda está por um fio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode fechar esse tópico... vou abrir outro a minha dificuldade foi resolvida, mas como surgiu outra, vou fechar esse e abrir outro.... agradecimentos à galera que vem ajudando!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.