Quem já se quebrou pra ler um xls??
E quem ai precisa ler o xls sem saber a quantidade nem o nome das planilhas, linhas e colunas de cada planilha do arquivo??
Quer mais? Não precisa definir uma área (name) das células
Segue a solução que criei adaptada de códigos retirados na web com uma pitada de meu modesto conhecimento em Asp:
CODE
<%@Language="VBScript"%>
<%
'Autor   : Jonathan R. Cardozo (jonathandj)
'Data criação : 14/08/2007
'Finalidade  : Leitura de arquivo XLS (Excel 8.0) de forma dinâmica
Dim intColunas, intLinhas
Dim objConn, objRs, objTable

Set objConn = Server.CreateObject("ADODB.Connection")

With objConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source="& Server.MapPath("pasta.xls") &";Extended Properties=Excel 8.0;"
.Open
End With

Set objTable = Server.CreateObject("ADOX.Catalog")
objTable.ActiveConnection = objConn

for j = 0 to objTable.tables.count - 1
if lcase(objTable.tables(j).Type) = "table" Then

  set objRs = Server.CreateObject("ADODB.Recordset")
  objRs.CursorLocation = 3
  objRs.Open "SELECT * FROM ["&Cstr(Ucase(objTable.tables(j).Name))&"] ",objConn
  intCount = 0
  if Not objRs.Eof Then
   intColunas  = objRs.Fields.Count
   Response.Write ("<table border=""1"">" & vbNewline)
   If intCount = 0 Then
    Response.Write ("<tr>" & vbNewline)
    For i = 0 To (intColunas-1)
     Response.Write ("<td><font size=""1"" face=""verdana"">&nbsp;" & objRs.Fields(i).Name & "</td>" & vbNewline)
    next
    Response.Write ("</tr>" & vbNewline)
   End If
   Do While Not objRs.Eof  
    Response.Write ("<tr>" & vbNewline)
    For i = 0 To (intColunas-1)
     Response.Write ("<td><font size=""1"" face=""verdana"">&nbsp;" & objRs.Fields(i).Value & "</td>" & vbNewline)
    Next
    response.write ("</tr>" & vbNewline)
    objRs.MoveNext
   Loop
   Response.Write ("</table>" & vbNewline)  
   Response.Write ("Nome da Tabela(Planilha):" & Cstr(Ucase(objTable.tables(j).Name)) & vbNewline)
   Response.Write ("<br/>" & vbNewline)
   Response.Write ("Total Colunas: " & intColunas & vbNewline)
   Response.Write ("<br/>" & vbNewline)
   Response.Write ("Total Linhas: " & objRs.RecordCount +1 & vbNewline) ' o +1 é por causa da primeira linha que é o name da coluna
  End If  
  objRs.Close
  Set objRs = Nothing  
  Response.Write ("<br/>")
  Response.Write ("<br/>")
end if
next

objConn.Close
Set objConn = Nothing
Set objTable = Nothing
%>
Arquivo usado nos testes: http://www.allmarketweb.com/pasta.xls

Lembrando que esse código não insere no banco, se tiver tempo faço e posto aqui a versão para gravar no DB

Espero que seja útil para alguem

Você gostou? Comente no fórum!

Comentários:

gabrielmelo disse:

Fala Jonathan beleza?!

Tenho uma duvida, para pegar os caracteres das celulas até aí tranquilo.
Mas quando a celula tem uma função tipo: =(A1-A2)+(A3-A4) ou =1 + A12, e dessas funções retorna uma valor tipo, 12 ou 15, um numero qualquer, e mostrar esse valor, será que funciona ? OBS: na celula, o excel mostra o valor, mas quando vc ve, esse celula está formatada com uma função.
Será que o asp consegue trabalhar com essas funções ?

Abraaaço thumbsup.gif

Lucasbr disse:

cara, se vc ja souber as funcoes que tem no seu excel, sim, é so vc colocar isso no seu codigo asp..

jonathan disse:

não vejo outra saida sem ser essa do lucasbr pois conseguimos extratir os valores e não o resultado de uma função interna do xls

David Cruvinel disse:

Ótimo tuto...

Parabéns jonathan...

ok.gif

Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).

Mais recentes em ASP

Asp info
Por Lucasbr - Veja as configurações do seu servidor...
Criptografia sha-256 em asp
Por Lucasbr - A família de sha (secure hash algorithm) está relacionada...
Tabela dinâmnica
Por RobsonUgoStoso - Montando uma tabela dinâmica com datas...
Cdosys error '8004020f' - a solução
Por David Cruvinel - A solução...
Recuperar stored procedure
Por Pinguim - No trampo novo, precisei recuperar algumas storedprocedures....

Ver mais Artigos de ASP.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com