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

Importar Do Excel E Mandar Pro Access


bonoddr

Pergunta

Seguinte, eu estou pesquisando pra saber como proceder. Quero fazer em ASP que determinados valores de campos de uma planilha excel (que está localizada no computador do usuário) sejam inseridos em uma tabela de access localizada em um servidor em outros determinados campos.

Alguém por favor pode ao menos me dar um ponto de partida? Não tenho a mínima idéia de como começar.. sad.gif

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

cara, tive um problema parecido e não tive tempo de pesquisar. uma saída rapida q achei foi salvando o arquivo txt, e então li o arquivo como txt usando

 set txt=createobject("scripting.filesystemobject")
 set arq_txt=txt.opentextfile(server.mappath("arquivo.txt"),1,1)
  while not arq_importprd.atendofstream 

     txt_lin=arq_txt.readline ' aqui eu recupero a linha e trato

  wend

qualquer coisa, manda o arquivo em excel pra show@showork.com.br q posso te ajudar a criar o fonte.

valewæ

Link para o comentário
Compartilhar em outros sites

  • 0

e ae.. beleza?

eu tinha achado aqui um link explicando sobre arquivos do officce em asp..

vo ver se acho, e depois posto pra vc

ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

hum..

tava olhando aqui.. olha o que eu achei:

strCaminho = Server.MapPath(strArqXls) 

Set dbXLS = Server.CreateObject("ADODB.Connection") 'Cria conexão Planilha
dbXLS.Open "Driver=Microsoft Excel Driver (*.xls);DBQ=" & strCaminho

Set rsXLS = dbXLS.OpenSchema(20)
rsXLS.MoveFirst
TabPrecos = rsXLS("TABLE_NAME")

SQL = "Select * from [" & tabPrecos & "]"
Set rsDados = dbXLS.Execute(SQL)

' Exibindo dados no browser 
' considere sua planilha como um array.
'Estou exibindo uma planilha que tem 7 colunas

While not rsDados.eof 
 Response.Write rsDados(0)&" "
 Response.Write rsDados(1)&" "
 Response.Write rsDados(2)&" "
 Response.Write rsDados(3)&" "
 Response.Write rsDados(4)&" "
 Response.Write rsDados(5)&" "
 Response.Write rsDados(6)
 Response.Write "<br>"
 rsDados.movenext
Wend
achei mais isso:
<%@LANGUAGE="VBSCRIPT"%> 
<%
session.lcid = 1046
Response.buffer = true
Response.Clear
Response.addHeader "pragma", "no-cache"
Response.CacheControl = "Private"
Response.Expires = 0
Session.Timeout = 5
%>
<html>
<head>
<FONT size="1" face="Verdana">
<%
Const adOpenStatic = 3
Const adLockPessimistic = 2
Dim cnnExcel
Dim rstExcel
Dim I
Dim iCols
Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "DBQ=" & Server.MapPath("dados.xls") & ";" & _
   "DRIVER={Microsoft Excel Driver (*.xls)};"
Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "SELECT * FROM cont;", cnnExcel, _
   adOpenStatic, adLockPessimistic
iCols = rstExcel.Fields.Count
%>
<table border="1">
   <thead>
       <%
       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
   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

       rstExcel.MoveNext
   Loop
   %>
</table>
<%
rstExcel.Close
Set rstExcel = Nothing
cnnExcel.Close
Set cnnExcel = Nothing
%>
e mais isso:
<%
Set rs = db.Execute("SELECT * FROM tabela")

'Cria o objeto de conexão
Set ExcelSheet = CreateObject("Excel.Sheet")

'Seta a aplicação como invisível
ExcelSheet.Application.Visible = False

'Insere um valor em uma célula do db access
ExcelSheet.Application.WorkSheets(1).Cells(1,1).Value = rs("campo")

'ou também para a primeira planilha (default)
ExcelSheet.Application.Cells(1,1).Value = rs("campo")

'Salva o documento
ExcelSheet.Application.Workbooks(1).SaveAs("teste.xls")

'Fecha o objeto, sai da aplicação ativa e libera memória
ExcelSheet.Close
ExcelSheet.Application.Quit
set ExcelSheet = nothing
%>

Não testei nenhum dos codigos..

apenas achei eles na net mesmo.. teste e depois nos diga se funciona

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Testei o penúltimo código e obtive a seguinte mensagem de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)

ODBC driver does not support the requested properties.

/joao/teste.asp, line 32

Acredito que seja a minha conexão ODBC que não suporta para planilha Excel. dark0, será que é este o problema mesmo???

No aguardo,

bonoddr

Link para o comentário
Compartilhar em outros sites

  • 0

andei fuçando aqui..

strArqXls="\caminhoIP\joao\teste.xls"
strCaminho = Server.MapPath(strArqXls) 

Server.MapPath eu especifico o caminho de onde está o arquivo, no caso em um servidor (ou máquina remota)

Porém, dá erro ODBC. Devo criar uma conexão para a planilha específica?

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Excel]Erro geral Não é possível abrir a chave 'Temporary (volatile) Jet DSN for process 0x764 Thread 0x688 DBC 0x1400014 Excel' do Registro.

Alguma sugestão? blink.gif

bonoddr

Link para o comentário
Compartilhar em outros sites

  • 0

cara.. não faço a minima ideia de como se usa, ou de como funciona isso tudo ae..

como eu havia postado, apenas achei esses codigos em um forum da microsoft..

passei isso, porque você queria um "ponto de partida"

vo fazer uns testes aqui, e ver o que acontece..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

hum..

nada a ve com a historia, mas olha isso:

GenerateXLS

Link para o comentário
Compartilhar em outros sites

  • 0

desistiu bono?

ou descobriu como se faz ?

Link para o comentário
Compartilhar em outros sites

  • 0

pois é

o legal é que eu já consegui montar um script que faz isso.. mas não lembro onde coloquei

(na verdade eu fiz uns testes e consegui acessar os dados da planilha.. mas depois parei por aí. isso foi aqui em casa ainda.. por isso acho que perdi)

Link para o comentário
Compartilhar em outros sites

  • 0

Galera, eu consegui em partes. Eu usei o código de mandar os campos de uma tabela na página e mandar pra planilha excel (Generate XLS), mas ainda não tive tempo de estudar à fundo. Mas o meu maior interesse mesmo é disponibilizar um SpreadSheets (componente pelo frontpage) e daí sim mandar os dados preenchidos para uma tabela do Access.

Alguma sugestão? huh.gif

bonoddr

PS.: dark0, se você puder, queria que me ensinasse a montar um script (CGI).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

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