Ir para conteúdo

POWERED BY:

Arquivado

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

vivi@ne

nome para [Plan$1] no upload

Recommended Posts

Bom dia a todos, estou com um problema e não consigo resolver, o cliente faz o upload da planilha pro servidor e essa planilha é mostrada em uma página html, até aí beleza, mas o problema é quando envio várias planilhas com nomes diferentes, porque ele não acha a planilha pq o nome é diferente do que o asp manda abrir...

vou colocar o código da pg que mostra pra ver se alguém sabe o que acontece... e como resolver...

 

<%municipio = Session("pasta individual cliente ")usuario = Session("usuario")ArquivoNome = Request.QueryString("ArquivoNome")PastaDestino = Server.Mappath("/caminho da pasta") & "\" & pastaindividualcliente Set objConn = Server.CreateObject("ADODB.Connection")objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & (PastaDestino&"/"&ArquivoNome) & ";Extended Properties=""Excel 8.0;HDR=Yes;"";"Table = "[Plan1$]"	   Set objRS = Server.CreateObject("ADODB.Recordset")	   objRS.ActiveConnection = objConn	   objRS.CursorType = 3						   objRS.LockType = 2					  	   objRS.Source = "Select * from"& sTable	   objRS.Open	 Response.Write("<TABLE><TR>")	 For X = 0 To objRS.Fields.Count - 1		Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")	 Next	 Response.Write("</TR>")	 objRS.MoveFirst	 While Not objRS.EOF		Response.Write("<TR>")		For X = 0 To objRS.Fields.Count - 1		   Response.write("<TD>" & objRS.Fields.Item(X).Value)		Next		objRS.MoveNext		Response.Write("</TR>")	 Wend	 Response.Write("</TABLE>")		 objRS.Close	 Set objRS = Nothing	  Set objArquivo = nothing%>

Se alguém souber como fazer me dê uma mão pq não consegui usar excel.aplicattion o servidor não suporta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa variavel pastaindividualcliente você seta ela onde?e porque isso municipio = Session("pasta individual cliente ")?

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa variavel pastaindividualcliente você seta ela onde?e porque isso municipio = Session("pasta individual cliente ")?

Antes de abrir a planilha em si, é criada uma pasta individual para cada cliente.Dentro dessa pasta é feito o upload do arquivo xls, daí o problema porque eu não sei o nome da plan que ele vai jogar... até aí tá tudo certo, mas quando vou abrir uma plan que tem nome diferente ele dá erro, justamente porque no asp está select * from [Plan1$] e o cliente pode estar mandando [sheet1$] por exemplo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahh..entendi.....desculpe, depois do almoço tudo clareia.....

 

bom, eu não manjo muito de integração com excel, mas quem sabe na logica te dou uma luz, seguinte...se antes de fazer o select * from XXX você tentasse ler todas as planilhas utilizando a mesma logica de listar nomes das tabelas....veja exemplo

http://forum.imasters.com.br/index.php?showtopic=8547

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahh..entendi.....desculpe, depois do almoço tudo clareia.....bom, eu não manjo muito de integração com excel, mas quem sabe na logica te dou uma luz, seguinte...se antes de fazer o select * from XXX você tentasse ler todas as planilhas utilizando a mesma logica de listar nomes das tabelas....veja exemplohttp://forum.imasters.com.br/index.php?showtopic=8547

Obrigado pela dica, mas no caso, vai mostrar as tabelas do *.mdb e o que eu preciso é ver e abrir as plans de uma planilha *.xls, estou procurando meios alternativos, tipo FSO pra abrir essas plans já que Excel.Application não roda no meu servidor....Alguém saberia como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei optando por alterar todo o código e instruir o cliente fazer do meu jeito.... é mais fácil, mais uma coisa, que eu to com dúvida e não consigo resolver...Se o cara faz o upload de uma tabela com as 22 colunas que eu to pedindo completa, quer dizer com os dados, vai belezinha, mas se ele mandar com alguma coluna vazia, o bd não vai achar nada e vai retornar o erro: ADODB.Recordset error '800a0cc1' Item cannot be found in the collection corresponding to the requested name or ordinal. Alguém sabe como importar as informações para o bd que tem 22 colunas mesmo se a tabela xls tiver só 3 preenchidas por exemplo?o cód que lê os RS e insere no bd é esse:

<%municipio = Request.QueryString("municipio")set Cmd=server.CreateObject("ADODB.COMMAND")Cmd.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath(("pastaprincipal")&"\"&pasta do cliente&"/"&"mdb que recebe os dados.mdb")%><%Dim Conn, RSDim Campos, contador'// CONECTAMOS COM O BANCO DE DADOSSet Conn = CreateObject("ADODB.Connection")With Conn.Provider = "Microsoft.Jet.OLEDB.4.0"arquivo = request.QueryString("arquivo")municipio = Request.QueryString("municipio").ConnectionString = "Data Source="& Server.MapPath(("/pastaprincipal")&"\"&pasta do cliente& arquivo) & ";Extended Properties=""Excel 8.0;HDR=No;"";".OpenEnd With'// AO CRIAR O RECORDSET, O SELECT INDICA O NOME DA PLANILHA DO ARQUIVOSet RS = Conn.Execute("SELECT * FROM [Plan1$] ")'// CONTO QUANTAS LINHAS EXISTEM NO ARQUIVOCampos = RS.Fields.Count'// INICIO O LOOPresponse.write "<table width=""2000""  align=""center"" border=""1"">"Do While RS.EOF = Falseresponse.write "<tr>"'// Aqui informo os nomes das colunas para listar os resultadosresponse.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F1") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F2") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F3") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F4") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F5") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F6") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F7") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F8") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F9") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F10") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F11") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F12") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F13") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F14") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F15") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F16") & "</td>"response.write "<td width=""75""><font size=1 face=verdana><b>" & RS("F17") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F18") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F19") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F20") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F21") & "</td>"response.write "<td width=""35""><font size=1 face=verdana><b>" & RS("F22") & "</td>"response.write "</tr>"vc1 = RS("F1")vc2 = RS("F2")vc3 = RS("F3")vc4 = RS("F4")vc5 = RS("F5")vc6 = RS("F6")vc7 = RS("F7")vc8 = RS("F8")vc9 = RS("F9")vc10 = RS("F10")vc11 = RS("F11")vc12 = RS("F12")vc13 = RS("F13")vc14 = RS("F14")vc15 = RS("F15")vc16 = RS("F16")vc17 = RS("F17")vc18 = RS("F18")vc19 = RS("F19")vc20 = RS("F20")vc21 = RS("F21")vc22 = RS("F22")cmd.CommandText="insert into tabeladomdb (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22) values ('"&vc1&"','"&vc2&"','"&vc3&"','"&vc4&"','"&vc5&"','"&vc6&"','"&vc7&"','"&vc8&"','"&vc9&"','"&vc10&"','"&vc11&"','"&vc12&"','"&vc13&"','"&vc14&"','"&vc15&"','"&vc16&"','"&vc17&"','"&vc18&"','"&vc19&"','"&vc20&"','"&vc21&"','"&vc22&"')"Cmd.Execute quant,Array(vc1,vc2,vc3,vc4,vc5,vc6,vc7,vc8,vc9,vc10,vc11,vc12,vc13,vc14,vc15,voê16,vc17,vc18,vc19,vc20,vc21,vc22) RS.MoveNextLoopresponse.write "</table>"'// EXIBO A QUANTIDADE DE REGISTROS ENCONTRADOSresponse.write campos'// FECHO E DESCONECTO O RECORDSET E A CONEXÃORS.CloseSet RS = NothingConn.CloseSet Conn = Nothing %>

alguém me dá uma luz?

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.