Ir para conteúdo

POWERED BY:

Arquivado

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

nemtconto

Importar dados de Excel para Banco de Dados

Recommended Posts

Olá... depois de me matar consegui resolver meu problema com meu amigo Google e Paciencia xD

 

Obrigado ao Patrique pelo help que me deu quando estava tentando fazer isso! Agora estarei colocando a solução abaixo! Creio que MUITA gente vai usar por que fiz de um jeito SUPER SIMPLES! E com direito a UPLOAD.

 

 

Primeiro, para fazer upload do arquivo em Excel

 

LEGENDA

importarArq.asp = É para aonde será "levado" o arquivo, para executar as funções de Upload, Gravar dados no Banco de Dados e exibir na página o que foi "importado"

 

<form ACTION="importarArq.asp" METHOD="post" ENCtype="multipart/form-data">

	<input NAME="FILE1" id="FILE1" type="FILE" class="formosnovo" SIZE="60"><BR>
        <input type="SUBMIT" class="formosnovo" VALUE="Importar!">

</form >

Conexão com o Banco de Dados - Neste caso é com o Access mas os scripts abaixo funcionam também para MySql e SQLServer(Porém esse com algumas mudanças)

cntCaminho = "banco.mdb"

Set conbanco = Server.CreateObject ("ADODB.Connection")

conbanco.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=" &  server.MapPath(cntCaminho)

Legenda

Não esqueça de colocar a sua conexão com o banco de dados no código abaixo.

 

Abaixo script de upload utilizando SaFileUp

SET SaFileUp = Server.CreateObject("SoftArtisans.FileUp")

                        'Configura o caminho onde arquivo será salvo
                        SaFileUp.Path = "CAMINHO DE ONDE SERÁ O UPLOAD"

                        'Caso o usuário não indique um arquivo para upload, informa erro.
                        If SaFileUp.IsEmpty Then
                                        response.write "<center>Por favor, indique um arquivo para upload.</center><br>"
                        Else
                                'Salva o arquivo no servidor
                                SaFileUp.Save
                                'response.write "<center>Total de Bytes Enviados: " & SaFileUp.TotalBytes & "</center>"
								
								'NOME DO ARQUIVO COM O CAMINHO
								nomearquivo = SaFileUp.Form("FILE1")
								
								'APENAS O NOME DO ARQUIVO
								nome = SaFileUp.Form("FILE1").ShortFilename
								
                        End if							

                Set SaFileUp = Nothing

Abaixo os dados, aonde ele irá GRAVAR no banco de dados, e também LISTAR o conteudo que foi "importado"

Const adOpenStatic = 3
Const adLockPessimistic = 2

Dim cnnExcel
Dim rstExcel
Dim I
Dim iCols

'CONEXÃO COM O XLS QUE FOI UPADO
Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "DBQ=" & Server.MapPath("./upload/"&nome&"") & ";" & _
	"DRIVER={Microsoft Excel Driver (*.xls)};"

'AQUI IRÁ ABRIR A "GUIA PLAN1" DO EXCEL
Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "SELECT * FROM [Plan1$];", cnnExcel, _
	adOpenStatic, adLockPessimistic

'AQUI IRÁ CONTAR QUANTAS LINHAS TEM O EXCEL
iCols = rstExcel.Fields.Count

%>
<table border="1">
	<thead>
		<%
		'AQUI IRÁ MOSTRAR O NOME DA PRIMEIRA LINHA É DELA QUE VOCÊ TERÁ QUE "RESGATAR" OS DADOS PARA POR O RESTO
		For I = 0 To iCols - 1
			Response.Write "<th>"
			Response.Write rstExcel.Fields.Item(I).Name
			Response.Write "</th>" & vbCrLf
		Next 'I
		
		%>
	</thead>
	<%
	rstExcel.MoveFirst

	'AQUI IRÁ LISTAR TODO O CONTEUDO A PARTIR DA SEGUNDA LINHA PARA BAIXO
	Do While Not rstExcel.EOF
	
		Response.Write "<tr>" & vbCrLf
		For I = 0 To iCols - 1
			Response.Write "<td>"
			Response.Write rstExcel.Fields.Item(I).Value
			Response.Write "</td>" & vbCrLf
		Next 'I
		Response.Write "</tr>" & vbCrLf
		
		' RESGATANDO OS DADOS DA PLANILHA EM EXCEL COMO FALEI, ELE RESGATA COMO SE FOSSE A PRIMEIRA LINHA, ENTÃO O QUE ESTIVER NA PRIMEIRA LINHA DEVE ESTAR AQUI TAMBÉM
			nome = rstExcel("nome")
			email = rstExcel("email")
			grupo = rstExcel("grupo_mai")

		' AQUI ESTARÁ INSERINDO OS DADOS EM SEU BANCO DE DADOS
		sqlText = "INSERT INTO mailingNews (email, nome, grupo_mai) values ('" 
		sqlText = sqlText & email
		sqlText = sqlText & "', '"
		sqlText = sqlText & nome
		sqlText = sqlText & "', '"
		sqlText = sqlText & grupo
		sqlText = sqlText & "')"
		conbanco.Execute (sqlText)
		rstExcel.MoveNext
	Loop
	
	%>
</table>

<%
rstExcel.Close
Set rstExcel = Nothing

cnnExcel.Close
Set cnnExcel = Nothing	
				

 

Prontinho, agora pode ser UPADO, IMPORTADO e ainda é LISTADO o que foi importado, espero que gostem! Dúvidas já sabem basta perguntar no topico que respondo, por MP não!

 

Abraço e obrigado pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bem...

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.