Ir para o conteúdo
a3deluxe

Exportar dados EXcel para uma TextBox

Mensagens Recomendadas

a3deluxe

Boas,

Queria Exportar dados de um ficheiro EXcel de uma celula (exemplo: celula A5 para uma Textbox1)

Aqui fica o código que ja fiz, mas não funciona porque deve ter a ver com a "driver" para a abertura de ficheiros do excel.

//  

Public Conn As ADODB.Connection
Public rs2 As ADODB.Recordset
Dim ent As Long
Dim sai As Long

Public Sub xlsx()
	On Error GoTo erro
	Conn = New ADODB.Connection
	rs2 = New ADODB.Recordset
	Conn.ConnectionString = "Driver={Microsoft dBase Driver (*.xlsx)};SourceType=xlsx;SourceDB=d:\;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"
	Conn.Open()
	Exit Sub
erro:

	Resume Next
	Exit Sub
End Sub

Public Sub read()
	xlsx()
   [b] rs2.Open("SELECT * FROM D:\cont.xlsx", Conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, ADODB.CommandTypeEnum.adCmdText)[/b]
	ent = rs2.Fields("ent").Value
	sai = rs2.Fields("sai").Value
	rs2.Close()
	Conn.Close()

	TextBox1.Text = ent
	TextBox2.Text = sai
	Exit Sub
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	read()
End Sub
End Class	 

As letras a negrito é onde me dá o erro.

Abraços

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cdaniel.marques

Se for para ler informação de uma célula, e se tiveres o excel instalado, sugiro o seguinte:

No Solution Explorer, com lado direito rato no Projecto -> Add Reference -> Na Tab COM -> Adicionas referencia "Microsoft Excel 12.0 Object Library"

e adicionas o seguinte código:

Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
	Dim oApp As New Excel.Application
	Dim oWBa As Excel.Workbook = oApp.Workbooks.Open("c:\cont.xlsx")
	Dim oWS As Excel.Worksheet = DirectCast(oWBa.Worksheets(1), Excel.Worksheet)

	oApp.Visible = False
	Dim oRng As Excel.Range
	oRng = oWS.Range("A5")
	MsgBox(oRng.Value)


    oWBa.Close()
    oApp.Quit()
End Sub
End Class

Editado por cdaniel.marques

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago Simões Marques

Só uma dica pequenina.

Em vez de utilizares diretamente classes dessa dll, declara tudo como object, desta forma não precisas de adicionar essa library como referência, e a aplicação fica independente da versão do excel que o utilizador final tenha instalado. O único problemas de declarares tudo como object é a perda do intellisense, mas isso só passas para object depois de teres o código todo feito.

Nota: Podes importar directo

Imports Excel = Microsoft.Office.Interop.Excel

Imports Microsoft.Office.Interop.Excel

A pedido de muitas famílias, deixo um exemplo:

Dim objExcel As Object
objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open("C:\cont.xlsx")
objExcel.Visible = False
MsgBox(objExcel.Cells(1, 1).Value)
objExcel.Quit()

Cumprimentos,

Editado por Tiago Simões Marques

Tiago Simões Marques

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago Simões Marques

Boas,

Não te esqueças de tirar as referências e os imports, porque mesmo que não os estejas a utilizar, como fizeste importação deles pode-te dar problemas na mesma.

Cumprimentos,


Tiago Simões Marques

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago Simões Marques

Estás a alterar o valor das células?

Exemplo:

TextBox1.text = objExcel.Cells(1, 1).Value 'Cell A1
TextBox2.text = objExcel.Cells(1, 2).Value 'Cell A2 Se não me ingano!

Cumprimentos,

Editado por Tiago Simões Marques

Tiago Simões Marques

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
a3deluxe

Boa tarde,

O seguinte código Exporta os dados de varias Textboxs para um ficheiro Excel.

//   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

	Dim oExcel As Object
	Dim oBook As Object
	Dim oSheet As Object

	oExcel = New Excel.ApplicationClass
	oBook = oExcel.Workbooks.Open("d:\teste.xlsx")
	oExcel.Visible = True

       oSheet = oBook.Worksheets(1)

	oSheet.Range("A3").Value = Textbox1.Text
	oSheet.Range("A4").Value = TextBox2.Text
	oSheet.Range("A5").value = TextBox3.Text
	oSheet.Range("A6").Value = TextBox4.Text
	oSheet.Range("A7").Value = TextBox5.Text
	oSheet.Range("A8").Value = TextBox6.Text
	oSheet.Range("A9").Value = TextBox7.Text
	oSheet.Range("A10").Value = TextBox8.Text
	oSheet.Range("A11").Value = TextBox9.Text
	oSheet.Range("A12").Value = TextBox10.Text
	oSheet.Range("A13").Value = TextBox11.Text
	oSheet.Range("A14").Value = TextBox12.Text

 End Sub

Queria simplificar o programa:

para não ter que estar a repetir umas 100 vezes o código em cima.

seria fazer para as restantes colunas.

o meu ficheiro do Excel tenho 3 Colunas:

A , B , C , D , E , F

e em cada coluna 12 linhas.

cada linha corresponde a uma textbox.

queria fazer por exemplo:

-coluna A vai da linha 17 a 28

-coluna B vai 3 ao 14

-coluna C vai 3 ao 14

......

Alguma ideia como fazer??

Editado por a3deluxe

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago Simões

Bom dia, no seguimento deste post gostava de saber como fazer, para abrir a janela e procurar eu pelo ficheiro em vez de abrir logo: oBook = oExcel.Workbooks.Open("d:\teste.xlsx")

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.