Ir para conteúdo

POWERED BY:

Arquivado

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

Inside

Lendo só uma linha no Excel

Recommended Posts

Caros amigos,

 

gostaria de uma ajuda. Alguém pode me dizer porque esse código só lê a segunda linha da tabela teste.xls? A linha 1 possui dados e também a linha 2 mas só mostra resultados da linha 2.

 

dim objRec, objConnExcel, objRSExcel

 

set objRec = server.CreateObject("ADODB.RecordSet")

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

objConnExcel.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("teste.xls") &";" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set objRSExcel = Server.CreateObject("ADODB.Recordset")

objRSExcel.ActiveConnection = objConnExcel

objRSExcel.CursorType = 3

objRSExcel.LockType = 2

objRSExcel.Source = "Select * from [Plan1$]"

objRSExcel.Open

 

if objRSExcel.eof and objRSExcel.bof then

response.write ""

else

do while not objRSExcel.eof

 

response.write "<td>" & objRSExcel.Fields(0).Value & "</td><td width=""15""></td>"

response.write "<td>" & objRSExcel.Fields(1).Value & "</td><td width=""15""></td>"

response.write "<td>" & objRSExcel.Fields(2).Value & "</td><td width=""15""></td>"

 

objRSExcel.movenext

loop

end if

 

set objRSExcel = nothing

 

objConnExcel.close

set objConnExcel = nothing

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente esta correto, ela gera algum erro, ou somente nao lê ???

 

da uma olhada neste código:

 

<%

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

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("teste.xls") &";" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = 3 
objRS.LockType = 2 
objRS.Source = "Select * from [Plan1$]"
objRS.Open


Response.Write("Dados")
' exibindo

Response.Write("<TABLE border=1><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>")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado xanburzum,

 

Obrigado pela ajuda.

 

O meu código não tem For, pode ser esse o porblema.

 

Mas agora tenho mais uma pergunta é possível escolher a linha que eu quero que pareceça na tela? Pois quero que apareça na tela somente as linhas 2 e 5 a planilha. Espero não estar exagerando na solicitação.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer o FOR e exibe apenas que quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado colega,

 

Acredito que para a primeira questão, tem uma propriedade da conexão que define se a primeira linha corresponte ao titulo da coluna ou não...veja o texto extraido do site da microsoft!!

 

"títulos de coluna : por padrão, presume que a primeira linha da sua fonte de dados do Excel contém títulos de colunas que podem ser usados como nomes de campo. Se isso não for o caso, você deve ativar essa configuração de Desativar ou a primeira linha de dados "desaparece" a ser usado como nomes de campo. Isso é feito por adicionar o opcional HDR = definir como a Extended Properties de seqüência de conexão. O padrão, que não precisa ser especificado, é HDR = Yes . Se você não tem títulos de coluna, você precisará especificar HDR = não ; o provedor de nomes de seus campos F1, F2, etc.. Porque a seqüência de caracteres Extended Properties agora contém vários valores, ele deverá ficar entre aspas duplas, mais um adicional par de aspas duplas para informar ao Visual Basic para tratar o primeiro conjunto de aspas como valores literais, como no exemplo a seguir (onde espaços extras foram adicionados para maior clareza visual). "

Referência:Como usar o ADO com dados do Excel de Visual Basic ou VBA

 

Com relação a segunda dúvida, entendo que os valores devem ser filtrados através dos critérios da consulta que você está executando....dai você retorna somente estes dois registros que lhe interessam!!

 

Espero ter ajudado.

 

Abraço,

Marcus

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.