fabio_jms Postado Março 24, 2004 Denunciar Share Postado Março 24, 2004 alguém sabe como ler um arquivo xls e gravar os dados das celulas em uma tabela?ObrigadoFabio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Março 24, 2004 Denunciar Share Postado Março 24, 2004 e ae.. beleza?dá uma olhada nesse tópico aberto:Importar Do Excel E Mandar Pro Access abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabio_jms Postado Março 24, 2004 Autor Denunciar Share Postado Março 24, 2004 e ae.. beleza?dá uma olhada nesse tópico aberto:Importar Do Excel E Mandar Pro Access abraços Valeu Brother ...aquelas arquivos q você me mandou me deram uma ideia de como fazer ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Março 24, 2004 Denunciar Share Postado Março 24, 2004 certo..se você conseguir fazer alguma coisa, posta ae, pois é interessante.. até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabio_jms Postado Março 26, 2004 Autor Denunciar Share Postado Março 26, 2004 Seguinte ... conectei o ASP no Excel usando esse código<%@LANGUAGE="VBSCRIPT"%> <%session.lcid = 1046Response.buffer = trueResponse.ClearResponse.Expires = 0Session.Timeout = 5%><html><head><FONT size="1" face="Verdana"><%Const adOpenStatic = 3Const adLockPessimistic = 2Dim cnnExcelDim rstExcelDim IDim iColsSet cnnExcel = Server.CreateObject("ADODB.Connection")cnnExcel.Open "DBQ=" & Server.MapPath("teste.xls") & "; DRIVER={Microsoft Excel Driver (*.xls)};"Set rsXLS = cnnExcel.OpenSchema(20)rsXLS.MoveFirstContatos = rsXLS("TABLE_NAME")Set rstExcel = Server.CreateObject("ADODB.Recordset")rstExcel.Open "SELECT * FROM [" & Contatos & "]", cnnExcel , adOpenStatic, adLockPessimisticiCols = 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.CloseSet rstExcel = NothingcnnExcel.CloseSet cnnExcel = Nothing%>Problema é o seguinte eu preciso ler uma planilha excel de mais de 1000 linhas por 152 colunas ... e sempre me da erro de buffer Response object error 'ASP 0251 : 80004005' Response Buffer Limit Exceeded /adm/teste/importar_cliente.asp, line 0 Execution of the ASP page caused the Response Buffer to exceed its configured limit. O código q estou usando é esse: Set cnnExcel = Server.CreateObject("ADODB.Connection") cnnExcel.Open "DBQ=" & Server.MapPath("xls/clientes" & data_arq & ".xls")&"; DRIVER={Microsoft Excel Driver (*.xls)};" Set rsXLS = cnnExcel.OpenSchema(20) rsXLS.MoveFirst Contatos = rsXLS("TABLE_NAME") Set rstExcel = Server.CreateObject("ADODB.Recordset") rstExcel.Open "SELECT * FROM ["& Contatos &]" , cnnExcel , adOpenStatic, adLockPessimistic iCols = rstExcel.Fields.Count ' conta o numero de colunas ' numeor de colunas é fixo em 152 ; por isso definir'nome das colunas' For I = 0 To iCols - 1 for I = 0 to 151 if sql = "" then sql="insert into mvlead ( ["& rstExcel.Fields.Item(I).Name & "]" & "," else if I = iCols - 1 then sql=sql & "[" & rstExcel.Fields.Item(I).Name & "]" & ")" 'ultima coluna fecha parenteses else sql=sql & "[" & rstExcel.Fields.Item(I).Name & "]" & "," 'se não for a ultima poe virgula end if end if Next 'I 'response.Write(sql)' le todas as linhas q contem dados teste = 0 rstExcel.MoveFirst Do While Not rstExcel.EOF' For I = 0 To iCols - 1 For I = 0 To 151 if sql2 = "" then if isnull(rstExcel.Fields.Item(I).Value) then sql2 = " values ('NULL'," else sql2 = " values ('" & replace(rstExcel.Fields.Item(I).Value,"'","''") & "'," end if else if I = iCols - 1 then if isnull(rstExcel.Fields.Item(I).Value) then sql2 = sql2 & "'NULL')" else sql2 = sql2 & "'" & replace(rstExcel.Fields.Item(I).Value,"'","''") & "')" end if else if isnull(rstExcel.Fields.Item(I).Value) then sql2 = sql2 & " 'NULL'," else sql2 = sql2 & "'" & replace(rstExcel.Fields.Item(I).Value,"'","''") & "'," end if end if end if Next 'I response.Write(sql&sql2) 'slqInsert = sql & sql2 'conexao.execute(sqlInsert) 'response.Write(sqlInsert&"<br><br>") 'sqlUser=("insert into (permissao, [site id number]) values (1," & rstExcel.Fields.Item(0).Value & ")") 'conexao.execute(sqluser) 'response.Write(sqlUser&"<br><br>") rstExcel.MoveNext Loop rstExcel.Close Set rstExcel = Nothing cnnExcel.Close Set cnnExcel = Nothingalguém tem alguma ideia do q pode estar acontecendo?Existe a posibilidade de eu aumentar o tamanho do buffer??? Desde já valeu .. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Março 26, 2004 Denunciar Share Postado Março 26, 2004 tenta usar o response.buffer = true (ou false) não lembro bem como é, porque faz tempo que não uso..testa aí..to de saida.. mais tarde te ajudo melhor..abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabio_jms Postado Março 26, 2004 Autor Denunciar Share Postado Março 26, 2004 Já coloquei response.buffer = trueresponse.buffer = falsesem buffer ...sempre o mesmo erro ... mais valeu dark0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 [ GuTo ] Postado Março 27, 2004 Denunciar Share Postado Março 27, 2004 Ando com preguiça de ler os post's ultimamente, mas tenta usar paginação, para não listar os 1000 registros de uma vez só, mas sim de 10 em 10, por exemplo.E acho que esse buffer seria algo como timedout, coisa assim... tipo, ficou muito tempo pra carregar a página, e este tempo se esgotou, dae nem exibiu nada...Desculpe por não ter lido, mas to com mta preguiça agora... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Março 27, 2004 Denunciar Share Postado Março 27, 2004 e ae guto.. beleza?Bom, a ideia desse tópico, no geral, seria conectar à uma planilha do excel, e a partir disso, tratar os dados que estao nela.Fabio, você tentou pegar uma planilha com poucos registros, e testar se o codigo funciona mesmo ?Se funcionar com poucos dados, pode ter certeza que com mais dados tb vai funcionar..aí, podemos tentar a paginação..abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabio_jms Postado Março 29, 2004 Autor Denunciar Share Postado Março 29, 2004 e ae guto.. beleza?Bom, a ideia desse tópico, no geral, seria conectar à uma planilha do excel, e a partir disso, tratar os dados que estao nela.Fabio, você tentou pegar uma planilha com poucos registros, e testar se o codigo funciona mesmo ?Se funcionar com poucos dados, pode ter certeza que com mais dados tb vai funcionar..aí, podemos tentar a paginação..abraços Então com pouca linhas na planilha funciona que é uma beleza...Mais eu não vou imprimir na tela o q estou lendo da planilha e sim vou fazer um insert no banco...Como o numero de linhas é grande (umas 6000 por planilha) o script da erro ...eu vou ter q inserir aos poucos ...Se tiver resultados positivos posto aqui..Valeu a todos...Fabio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fertel Postado Abril 5, 2004 Denunciar Share Postado Abril 5, 2004 Amigo, se seu problema é este, está resolvido:<%Session.Timeout = 30Server.ScriptTimeOut = 3000%> Isso aí vai te dar umas 3 horas para execução do script hehe...A propósito, estou com um problema parecido com o seu de importação de dados, como eu faria para importar de um txt? Tipo um e-mail por linha do txt e jogar no banco de dados?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Abril 5, 2004 Denunciar Share Postado Abril 5, 2004 Amigo, se seu problema é este, está resolvido:<%Session.Timeout = 30Server.ScriptTimeOut = 3000%> Isso aí vai te dar umas 3 horas para execução do script hehe...A propósito, estou com um problema parecido com o seu de importação de dados, como eu faria para importar de um txt? Tipo um e-mail por linha do txt e jogar no banco de dados?Abraços Não lhe resolveria usando FSO?Pois com FSO, você acessa arquivos.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fabio_jms
alguém sabe como ler um arquivo xls e gravar os dados das celulas em uma tabela?
Obrigado
Fabio
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
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.