Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...