Ir para conteúdo
Fórum Script Brasil
  • 0

Importar Arquivo Excel


robertopizza

Pergunta

Como posso atraves do ASP importar um arquivo XLS para uma tabela com os mesmos campos dentro do Access. é possivel?

Isso porque recebo um arquivo toda semana em excel que deve entrar como lançamanto dentro de um sistema em asp/access, e assim gostaria de importa-lo atravez de comando e não precisando que um usuario tenha que "mexer" no meu BD , abrir, copiar e colar o conteudo..Isso é inviavel

Obrigado!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Resultado da BUSCA DO FORUM!

Tambem:

- Listando conteúdo de um arquivo do Excel (.xls)

se você conseguir ler o conteudo do excel.. o resto é barbada..

t+

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado, mas não entendi como posso gravar isto em uma tabela..

<HTML>

<HEAD>

<TITLE>Lendo Dados do Excel</TITLE>

</HEAD>

<BODY>

<%

'// DECLARAMOS AS VARIÁVEIS UTILIZADAS

Dim Conn, RS

Dim Campos, contador

'// CONECTAMOS COM O BANCO DE DADOS

Set Conn = CreateObject("ADODB.Connection")

With Conn

.Provider = "Microsoft.Jet.OLEDB.4.0"

'// Nesta linha perca que a conexão indica que utilizaremos um arquivo do Excel

.ConnectionString = "Data Source="& Server.MapPath("pasta.xls") &";Extended Properties=Excel 8.0;"

.Open

End With

'// AO CRIAR O RECORDSET, O SELECT INDICA O NOME DA PLANILHA DO ARQUIVO

Set RS = Conn.Execute("SELECT * FROM [Plan1$] ")

'// CONTAMOS QUANTAS LINHAS EXISTEM NO ARQUIVO

Campos = RS.Fields.Count

'// INICIAMOS O LOOP

response.write "<table border=""1"">"

Do While RS.EOF = False

response.write "<tr>"

'// Aqui informamos os nomes das colunas para então lista os resultados

response.write "<td><font size=1 face=verdana><b>" & RS("INSCRICAO") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("LOCAL") & "</td>"

response.write "</tr>"

RS.MoveNext

Loop

response.write "</table>"

'// EXIBIMOS A QUANTIDADE DE REGISTROS ENCONTRADOS

response.write campos

'// FECHAMOS E DESCONECTAMOS O RECORDSET E A CONEXÃO UTILIZADA

RS.Close

Set RS = Nothing

Conn.Close

Set Conn = Nothing

%>

</BODY>

</HTML>

Link para o comentário
Compartilhar em outros sites

  • 0

você conseguiu ler o conteudo do excel?

se conseguir fazer isso, tente mostrar na pagina, para ver se está ok.

se estiver ok, para inserir, você usará o comando INSERT do SQL!

se precisar, estamos aí

ok?

t+

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, deu certinho.. visualizo todos dados do meu arquivo do excel.. masss.

No centro onde estao os RS montando a tabela do exel eu coloco minha conexao com o MDB.. mas como fazer ele inserir varios registros.. só havia feito com 1 insert.

""inicio da leitura do arquivo excel""""

<%

set Cmd=server.CreateObject("ADODB.COMMAND")

Cmd.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/arquivos/Bd.mdb"

cmd.CommandText="insert into tabela(campo1,campo2,campo3) values (?,?,?)"

Cmd.Execute quant,Array(RS1,RS2,RS3)%>

<%set Cmd = nothing%>

""final da leitura do arquivo excel""""

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0

como você fez?

pode mostrar aqui? assim, se alguém mais precisar.. terá a resposta..

ok?

t+

Link para o comentário
Compartilhar em outros sites

  • 0

Claro!

Obs: Importa e ve na tela os dados que foram inseridos.

<%

set Cmd=server.CreateObject("ADODB.COMMAND")

Cmd.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/sistema/BD.mdb"%>

<%

Dim Conn, RS

Dim Campos, contador

'// CONECTAMOS COM O BANCO DE DADOS

Set Conn = CreateObject("ADODB.Connection")

With Conn

.Provider = "Microsoft.Jet.OLEDB.4.0"

'// Nesta linha perca que a conexão indica que utilizaremos um arquivo do Excel

.ConnectionString = "Data Source="& Server.MapPath("arquivoexcel.xls") &";Extended Properties=Excel 8.0;"

.Open

End With

'// AO CRIAR O RECORDSET, O SELECT INDICA O NOME DA PLANILHA DO ARQUIVO

Set RS = Conn.Execute("SELECT * FROM [Plan1$] ")

'// CONTAMOS QUANTAS LINHAS EXISTEM NO ARQUIVO

Campos = RS.Fields.Count

'// INICIAMOS O LOOP

response.write "<table border=""1"">"

Do While RS.EOF = False

response.write "<tr>"

'// Aqui informamos os nomes das colunas para então lista os resultados

response.write "<td><font size=1 face=verdana><b>" & RS("c1") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("c2") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("c3") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("c4") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("c5") & "</td>"

response.write "<td><font size=1 face=verdana><b>" & RS("c6") & "</td>"

response.write "</tr>"

vc1 = RS("c1")

vc2 = RS("c2")

vc3 = RS("c3")

vc4 = RS("c4")

vc5 = RS("c5")

vc6 = RS("c6")

cmd.CommandText="insert into tabela (c1,c2,c3,c4,c5,c6) values (?,?,?,?,?,?)"

Cmd.Execute quant,Array(vc1,vc2,vc3,vc4,vc5,vc6)

RS.MoveNext

Loop

response.write "</table>"

'// EXIBIMOS A QUANTIDADE DE REGISTROS ENCONTRADOS

response.write campos

'// FECHAMOS E DESCONECTAMOS O RECORDSET E A CONEXÃO UTILIZADA

RS.Close

Set RS = Nothing

Conn.Close

Set Conn = Nothing

%>

<%set Cmd = nothing%>

Link para o comentário
Compartilhar em outros sites

  • 0

valeu roberto

vou copiar seu codigo e colar lá no tópico de funções!

to fechando o tópico.

se quiserem que eu reabra, mandem PM!

t+

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...