a3deluxe Posted August 9, 2013 at 02:41 PM Report #521361 Posted August 9, 2013 at 02:41 PM 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
cdaniel.marques Posted August 9, 2013 at 03:28 PM Report #521366 Posted August 9, 2013 at 03:28 PM (edited) 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 Edited August 9, 2013 at 05:07 PM by cdaniel.marques
Tiago Simões Marques Posted August 13, 2013 at 11:54 AM Report #521603 Posted August 13, 2013 at 11:54 AM (edited) 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, Edited August 13, 2013 at 07:55 PM by Tiago Simões Marques Tiago Simões Marques
a3deluxe Posted August 13, 2013 at 09:46 PM Author Report #521661 Posted August 13, 2013 at 09:46 PM Tiago Simões Marques obrigado pela dica, vou testar depois posto aqui mais duvidas. abracos
Tiago Simões Marques Posted August 14, 2013 at 09:13 AM Report #521696 Posted August 14, 2013 at 09:13 AM 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
a3deluxe Posted August 14, 2013 at 09:16 AM Author Report #521699 Posted August 14, 2013 at 09:16 AM Ainda não consegui colocar na Textbox1 os valores das celulas.
Tiago Simões Marques Posted August 14, 2013 at 09:42 AM Report #521704 Posted August 14, 2013 at 09:42 AM (edited) 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, Edited August 14, 2013 at 09:43 AM by Tiago Simões Marques Tiago Simões Marques
a3deluxe Posted September 8, 2014 at 01:34 PM Author Report #566549 Posted September 8, 2014 at 01:34 PM (edited) 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?? Edited September 8, 2014 at 01:35 PM by a3deluxe
Tiago Simões Posted October 5, 2014 at 01:00 PM Report #568654 Posted October 5, 2014 at 01:00 PM 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")
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now