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

Como Escrever Queries Para Uma Planilha Do Excel ?


Guest - Indrema DS -

Pergunta

Guest - Indrema DS -

Olá Pessoal,

Eu trabalho com PHP e estava tentando usar como base de dados uma planilha do excel, via ODBC usando um DSN do windows. Consigo conectar na planilha, mas não consigo escrever uma pesquisa nos moldes SQL :

Ex

SELECT * FROM Plan1

Minha maior dúvida é como referenciar o nome de uma 'tabela' dentro de uma planilha. Como o pessoal do ASP esta intimamente ligado a termos como "JET Driver" e coisas assim, pensei que pudessem me ajudar.

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Guest - Indrema DS -

Na verdade Urso, eu gostaria de fazer quase exatamente o inverso do exemplo. Eu quero consultar uma tabela do excel já preenchida e exibir no navegador como uma tabela. A minha dificuldade é que não consigo descobrir como se chamam as 'tabelas' dentro de uma planilha.

Mas de qualquer forma valeu a força.

Link para o comentário
Compartilhar em outros sites

  • 0

OK

<%
' Selected constants from adovbs.inc
Const adOpenStatic = 3
Const adLockPessimistic = 2

Dim cnnExcel
Dim rstExcel
Dim I
Dim iCols

' This is all standard ADO except for the connection string.
' You can also use a DSN instead, but so it'll run out of the
' box on your machine I'm using the string instead.
Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "DBQ=" & Server.MapPath("Intake_Sheet_2004.xls") & ";" & "DRIVER={Microsoft Excel Driver (*.xls)};"

' Same as any other data source.
' FYI: TestData is my named range in the Excel file
Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "SELECT * FROM sheeter;", cnnExcel, _
     adOpenStatic, adLockPessimistic

' Get a count of the fields and subtract one since we start
' counting from 0.
iCols = rstExcel.Fields.Count
%>
<table border="1">
     <thead>
          <%
          ' Show the names that are contained in the first row
          ' of the named range.  Make sure you include them in
          ' your range when you create it.
          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

     ' Loop through the data rows showing data in an HTML table.
     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
%>

Fonte: http://www.experts-exchange.com/Web/Web_La...Q_21080163.html

Boa Sorte!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Indrema DS -

Obrigado Urso, mas como preciso adaptar essa solução para um script PHP gostaria que me tirasse apenas uma dúvida :

Neste trecho :

Set rstExcel = Server.CreateObject("ADODB.Recordset")
rstExcel.Open "SELECT * FROM sheeter;", cnnExcel, _
    adOpenStatic, adLockPessimistic

'sheeter' é o nome de uma pasta de trabalho dentro do excel ? Senão, o que é na verdade ?

Minhas dúvidas residem inteiramente neste item.

Obrigado mais uma vez.

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado pela ajuda Urso, farei algumas combinações por aqui.

Ok Brother!!

Espero que lhe seja util e se possivel, se increva em nosso forum, e seja bem vindo a scriptbrasil.

Abraços e Tópico Fechado!!!!

Para reabrir, me envie uma PM ou e-mail: ursolouco@yahoo.com.br

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...