Ir para conteúdo

POWERED BY:

Arquivado

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

Liberdade

Ler arquivo XLS/Excel

Recommended Posts

Bom dia, eu preciso primeiramente apenas de uma coisa.ler um arquivo TXT que será colocado em um diretório..Como ler esse arquio?Pois depois que eu conseguir ler esse arquivo eu terei que fazer validações dentro de seu conteúdo.Mas uma coisa por vez, como eu faço para ler?grataLetícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Colega Liberdade,que tal usar a busca do fórum???Não vou nem te dar a resposta aqui porque tem muitos tópicos com a sua dúvida.... então usa a busca do fórum... e qualquer coisa se não conseguir entender com os outros tópicos volta aqui que tiramos as suas dúvidas..abração ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Leticia, para ler um arquivo TXT, via ASP, você vai precisar utilizar os métodos da classe FileSystemObject, para manipular o conteúdo do arquivo.

 

Qq dúvida do desenvolvimento do script postae.

 

OK..!!?? T+...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não dizer que sou chato fiz uma busca para você :P

 

http://forum.imasters.com.br/index.php?act...temObject+texto

 

Alguns posts que tem sobre leitura de txt:

Juntar TXT's

http://forum.imasters.com.br/index.php?sho...temObject+texto

 

Localizar informações em um arquivo txt

http://forum.imasters.com.br/index.php?sho...temObject+texto

 

abração :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

De barbada heim...só falta fazer huahuahua

Ae galera, procurem utilizar a busca ants de postar para evitar tópicos com a mesma finalidade

Para não dizer que sou chato fiz uma busca para você :P

 

http://forum.imasters.com.br/index.php?act...temObject+texto

 

Alguns posts que tem sobre leitura de txt:

Juntar TXT's

http://forum.imasters.com.br/index.php?sho...temObject+texto

 

Localizar informações em um arquivo txt

http://forum.imasters.com.br/index.php?sho...temObject+texto

 

abração :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meninos, olhem só...

 

<%'criamos o nome do arquivoarquivo= request.serverVariables("APPL_PHYSICAL_PATH") & "provas.txt"'conectamos com o FSOset confile = createObject("scripting.filesystemobject")'criamos o objeto TextStreamset fich = confile.CreateTextFile(arquivo)'escrevemos os números do 0 ao 9'for i=0 to 9'   fich.write(i)'next'fechamos o arquivo'fich.close()'voltamos a abrir o arquivo para leituraset fich = confile.OpenTextFile(arquivo)'lemos o conteúdo do arquivotexto_arquivo = fich.readAll()'imprimimos na página o conteúdo do arquivoresponse.write(texto_arquivo)'fechamos o arquivofich.close()%>

consegui chegar até essa parte.. mas olhem esse while que eu fiz, se fizer dessa forma vai certinho, mas ele escreve no arquivo (que não é o meu caso) pois o arquivo já possui informações escreitas dentro dele.

 

Quando eu tiro os comentários do while dá erro no final do arquivo

 

Tipo de erro:Erro de tempo de execução do Microsoft VBScript (0x800A003E)Final do arquivo ultrapassado/leitura/ler.asp, line 23

Grata

 

Letícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui.. ficou assim..

<%'criamos o nome do arquivoarquivo= request.serverVariables("APPL_PHYSICAL_PATH") & "provas.txt"'conectamos com o FSOset confile = createObject("scripting.filesystemobject")'voltamos a abrir o arquivo para leituraset fich = confile.OpenTextFile(arquivo)'lemos o conteúdo do arquivotexto_arquivo = fich.readAll()'imprimimos na página o conteúdo do arquivoresponse.write(texto_arquivo)'fechamos o arquivofich.close()%>
Agora será que podem me ajudar agora a entender como funciona a questãod e validação de informações dentro do arquivo txt que irei ler?

 

Exemplo, dentro do arquivo existem informações como por exemplo.. data de nascimento, salário etc.. etc.. preciso saber por exemplo se a data de nascimento está de acordo com os patrões do sistema (dd/mm/aaaa) etc..

 

grata

 

Letícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leticia, se você vai ter um registro por linha no arquivo você pode utilizar o método ReadLine do FSO.

Assim você isola a verificação de cada registro.

Depois é só identificar as posições inicial e final de cada campo e utilizar a função Mid(), para tratar cada campo.

 

OK..!!?? T+...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas dá para fazer a própria página ler o XLS e converter em TXT para não ser algo manual, porque sempre terá aquivos XLS sendo colocados nesse diretório para ser lidos pela página ASP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, Bom dia.. Eu consegui chegar até aqui fazendo o código para ler o xls. ficou assim mas está dando erro.. será que podem me ajudar?

<%Dim rs As ADODB.RecordsetDim rsTable As ADODB.RecordsetDim cn As ADODB.ConnectionSet cn = New ADODB.ConnectionWith cn.Provider = "MSDASQL".ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _"DBQ=C:teste.xls; ReadOnly=False;".OpenEnd WithSet rsTable = New ADODB.RecordsetSet rs = New ADODB.RecordsetrsTable.Open cn.OpenSchema(adSchemaTables) 'Recordset para saber quantos Sheets existem na planilhaWhile Not rsTable.EOFtblName = rsTable.Fields("TABLE_NAME").Value ' Nome do Sheet dentro do XLSstrQuery = "SELECT * FROM [" & tblName & "]" 'Abrir Sheetrs.Open strQuery, cnDo Until rs.EOFcolA=rs(0) 'Coluna AcolB=rs(1) 'Coluna BcolC=rs(2) 'Coluna C'....rs.MoveNext 'Cada leitura do recordset corresponde a mais uma linha da planilhaLooprs.ClosersTable.MoveNext 'Cada leitura do recordset corresponde a mais um Sheet existente na planilhaWendrsTable.Closecn.closeset rsTabela = nothingset rs = nothingset cn = nothing%>

Desculpe.. assim fica complicado né.. rs..

Tipo de erro:Erro de compilação do Microsoft VBScript (0x800A0401)Fim da instrução esperado/leitura/lerxls.asp, line 2, column 7Dim rs As ADODB.Recordset

Fiz na tentativa de acertar e encontrei esse código na net que parece se menor mas também dá erro..

 

<%Dim cn, rs, cmdSet cn = CreateObject("ADODB.Connection")cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _		 "Data Source=abencoa.xls;" & _		 "Extended Properties=""Excel 8.0;HDR=Yes;"";"Set cmd = CreateObject("ADODB.Command")cmd.ActiveConnection = cncmd.CommandText = "SELECT * from 'Tabelle1$A2:C4'"cmd.CommandText = "SELECT * from 'Bereichsname'"Set rs = cmd.Execute%>

dá esse erro..

 

Tipo de erro:Microsoft JET Database Engine (0x80004005)O mecanismo de banco de dados Microsoft Jet não pode abrir o arquivo ''. Ele já foi aberto em modo exclusivo por outro usuário ou você precisa de permissão para exibir seus dados./leitura/lerxls1.asp, line 4

O que será?

 

grata

 

Letícia

 

Grata

 

Letícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já elterei o meu post anterior para o que acontece aqui.. Acrescentei o erro e mais um código que tentei pegar na net mas não vai..:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer em aspx mesmo... só que alguns valores da planilha do excel não vem.. pq??

 

segue o código do aspx

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load		'' Criando as variáveis que serão usandas neste exemplo.		Dim i, j As Integer		' Cria a string de conexão. Modifique o parâmetro "Data Source"		' de maneira apropriada para o seu ambiente.		Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _					& "Data Source=" & Server.MapPath("../ExcelData.xls") _					& ";" & "Extended Properties=Excel 8.0;"		' Cria o objeto de conexão usando a string de conexão anterior (sConnectionString)		Dim objConn As New OleDbConnection(sConnectionString)		' Abre conexão com a base de dados.		objConn.Open()		' O código a seguir usa comandos SQL para mostrar os dados da planilha.		' Cria um novo OleDbCommand para retornar os dados da planilha.		Dim objCmdSelect As New OleDbCommand("SELECT * FROM myRange1", objConn)		' Cria um novo OleDbDataAdapter está é usado para contruir um DataSet 		' baseado no select feito anteriormente.		Dim objAdapter1 As New OleDbDataAdapter		' Passa o comando Select para o adaptador.		objAdapter1.SelectCommand = objCmdSelect		' Cria um novo DataSet para travar as informações da planilha.		Dim objDataset1 As New DataSet		' Carrega o DataSet com as informações da planilha.		objAdapter1.Fill(objDataset1, "XLData")		' Constroi a tabela com os dados originais.		DataGrid1.DataSource = objDataset1.Tables(0).DefaultView		DataGrid1.DataBind()		' Limpa ou fecha os objetos acima.		objConn.Close()	End Sub

 

Isso é o que ele retorna no navegado quando abro a página aspx.

000 empresa 83052007 TIPO CGC	 NOME DO USUARIO   SEXO ESTADO CIVIL	 FUNCAO MAE   RECOLHE PARA DEPENDENTE 001 16545454445465 1 29824020845 GUSTAVO COUTO 28101980 M C 11092006 3052007 AJUDANTE GERAL GENOVEVA DA PENHA LEITE 620 S 001 15464654465465 2 29824020845 ROBERTA SANTOS DE ARAUJO 28021983 F C	   DAGMAR NASCIMENTOS COSTA	 001 54132154465455 3 29824020845 GIOVANNA COSTA 22102001 F S	   ROBERTA COSTA

Existem alguns valores que não estão retorando..

Mas ainda falta dados nessa olanilha, e estou certo de que o erro é na planilha do execel.. o que pode ser?

 

Grata

 

Letícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim???Estrutura??Eu já olhei.. todos os dados são do mesmo tipo e estão alinhados para o mesmo lado.. etc.. etc.. o que mais eu posso ver?GrataLetícia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já verifiquei, e encontrei uma parte do erro..Um dos valores que não aparecem eu recortei para outra celula e mesmo assim não apareceu, mas na celula onde esse valor estava qualquer coisa que eu digito aparece, mas o texto que tem que ficar na celula não é carregado na página web..O que pode ser?----------------------------------------------------Outra coisa que eu fiz foi tb no lugar dessa celula ao invés de digitar o valor TIPO DO USUARIO eu digitei um número e apareceu no browser, e se escrevo TIPO DO USUARIO não aparece...O mais estranho é que dentro do excel essa celula (logo os valores nela contidos) está definido como texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi uma parte RS.. Peguei essa planilha e digitei do zero uma igualzinha.. e consegui listar as informações da planilha dentro da págna ASPX. Só que agora vem uma outra questão.. tenho que validar algumas informações.. exemplo.. na coluna código tem um número 000 que sempre tem que ser assim 000 como fazer para o ASPX verificar isso.. Ex.. se for 000 continue processando, se não for 000 motre uma mensagem para o usuário dizendo o que aconteceu de errado.. Parece que é um IF mais eu estou me perdendo em como fazer um IF verifar se existe esse código 000 na planilha..

Imports System.Data.oledbImports System.dataPartial Class _Default	Inherits System.Web.UI.Page		Protected Sub btnProcurar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProcurar.Click		Try			'obtendo a string de conexão do arquivo web.config			Dim conexaoExcel As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("conexaoExcel").ToString()			Dim dbConn As New OleDbConnection(conexaoExcel)			Dim strSQL As String			'montando a instrução SQL para obter os dados da planilha selecionada na caixa de listagem ddlExcel						dbConn.Open()			strSQL = "SELECT CODIGO FROM [" & ddlExcel.SelectedItem.ToString() & "$] WHERE CODIGO = '000'"			'Executando a instrução SQL e criando um DataSet para receber os dados						Dim cmd As New OleDbCommand(strSQL, dbConn)			Dim dsExcel As New DataSet			Dim daExcel As New OleDbDataAdapter(cmd)						'preenchendo o DataSet e exibindo os dados no gridView			daExcel.Fill(dsExcel)			gdvExcel.DataSource = dsExcel			gdvExcel.DataBind()		Catch ex As Exception		   Throw ex 		End Try	End SubEnd Class

 

Esse Select que fiz está retornando exatamente o código 000 que eu tenho que validar.. Mas como dizer para o IF isso? Se for 000 passa caso contrário dê erro?

 

Grata

 

Letícia

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.