• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

André Parreira

[Resolvido] Ligar excel ao vb.net 2008 express edition

19 mensagens neste tópico

Boas

eu ja tive a pesquisar como se ligava o vb.net ao excel, mas nao consigo, pode ser por causa das versoes?'

eu ja pesqquise i ja tentei fazer, ir ao project, add reference; COM, e depois nao aparece nehum check button ao lado de cada aplikativo, eu cliko em cima do biblioteca de microsoft excel 5.0 e tb o  microsoft excel 12.0 object library.

Depois esses 2 aplicativos vao para o RECENT.

depois introduzo uma linah de codigo por ex:

Imports Microsoft.Office.Interop

objApp = New Excel.Application

sabem tutoriais para ligar vb.net 2008 express edition  ao excel, agradecia tb.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu ja tinha visto esse andes de expor a minha duvida.

nesse post ele tem o visual basic 2005, eu tenho o vb.net 2008 express edition, tem alguma diferenças significativas?

tutoriais da ligaçao vb.net 2008 express edition com o excel agradecia, mas vou pesquisar na mesma, nao se pode parar.

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tb estou com problemas nos imports, nos 3.

Imports Microsoft.Office.Interop

Imports System.Threading.Thread

Imports System.Globalization 

tera a ver km a excel, ke e o micrsoft office excel 2007, e esta em portugues, o vb.net express edition  esta em ingles, pode estar ai o erro???

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja consegui meter imports :P

agora o unico erro que da e nesta linha de codigo

Public Sub ExportToExcel(ByVal dgvName As DataGridView, ByVal [option] As xlsOption, Optional ByVal fileName As String = "")

é o unico erro que da

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

José Lopes,

o [option] está correcto porque como é uma keyword tem de ficar dessa forma (ou utilizar outro nome para a variável)

André Parreira,

Mostra lá o teu código ... o pessoal têm de se habituar a dar mais informação/mostrar código e a dizer qual a mensagem de erro que dá. O pessoal não é bruxo.

De qualquer maneira não vais exportar uma datagridview, pois não ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim...já percebi essa parte jpaulino...e corrigi o meu post... de qq maneira... comm tanto nome possível...lol pk usar uma palavra reservada...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim...já percebi essa parte jpaulino...e corrigi o meu post... de qq maneira... comm tanto nome possível...lol pk usar uma palavra reservada...

Porque é mais sugestivo ... sei lá, não me lembrei de outra :P

Ele não reconhece a propriedade "xlsOption"

Isso, sim, se ele não colocou a enumeração.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok...so agora é que vi o teu artigo...

de facto... falta a enumeração... outra alternativa se ele não o quiser fazer será passar isso através de um outro tipo de variável, por exemplo um boleano... mas sim... com os enums.. tem outra classe ;-)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para conseguir ter mais umas bases para depois seguir o meu programa, tentei fazer o que estava no link acima

http://www.portugal-a-programar.pt/index.php?showtopic=11022

da erro logo no inicio, vou meter aqui a parte que da erro.

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel

Sub exportarDados() ------------------ da erro

    'Inicia o Excel e abre o documento que desejamos
    Dim excelApp As New Microsoft.Office.Interop.Excel.Application
    Dim excelBook As Microsoft.Office.Interop.Excel.Workbook = excelApp.Workbooks.Open(System.Windows.Forms.Application.StartupPath & "\plantilla.xls")
    Dim excelWorksheet As Microsoft.Office.Interop.Excel.Worksheet = CType(excelBook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet)
    'Torna o Excel invisível ao usuário até que a planilha seja preenchida
    excelApp.Visible = False

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta

Imports Excel

Sub exportarDados() '------------------ da erro

        'Inicia o Excel e abre o documento que desejamos
        Dim excelApp As New Excel.Application
        Dim excelBook As Excel.Workbook = excelApp.Workbooks.Open(System.Windows.Forms.Application.StartupPath & "\plantilla.xls")
        Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
        'Torna o Excel invisível ao usuário até que a planilha seja preenchida
        excelApp.Visible = False
    End Sub

Eu testei aqui dessa forma.... de funcionou perfeitamente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Meti esse codigo num botao, nao deu erro, mas nao deu nada, como era de esperar devido a ter pouco codigo ainda, mas agora com o codigo todo.

Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop
Imports Excel
Public Class Form1

    Sub exportarDados()

        'Inicia o Excel e abre o documento que desejamos
        Dim excelApp As New Excel._ExcelApplication
        Dim excelBook As Excel.Workbook = excelApp.Workbooks.Open(System.Windows.Forms.Application.StartupPath & "\plantilla.xls")
        Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
        'Torna o Excel invisível ao usuário até que a planilha seja preenchida
        excelApp.Visible = False
        With excelWorksheet
            'Formata os cabeçalhos das células
            .Range("B7").Value = "Código"
            .Range("B7").Font.Bold = True
            .Range("B7").ColumnWidth = 10
            .Range("C7").Value = "Endereço"
            .Range("C7").Font.Bold = True
            .Range("C7").ColumnWidth = 35
            .Range("D7").Value = "País"
            .Range("D7").Font.Bold = True
            .Range("D7").ColumnWidth = 15
            .Range("E7").Value = "Data"
            .Range("E7").Font.Bold = True
            .Range("E7").ColumnWidth = 10

            'define o indice da célula da qual iremos extrair os dados
            Dim i As Integer = 7

            'Preenche a planilha Excel
            'agora temos que colocar só o que necessitamos
            Try
                .Range("B" & i.ToString).Value = "1"
                .Range("C" & i.ToString).Value = "Rua 123"
                .Range("D" & i.ToString).Value = "Portugal"
                .Range("E" & i.ToString).Value = "19-04-1982"

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            'Torna o Excel visível
            excelApp.Visible = True
            excelApp.SaveWorkspace(makeFileName()) ´--------- da erro no makeFileName
            excelBook.Close(False)
            excelApp = Nothing
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End With

    End Sub
End Class

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Coloquei aqui a funcionar.....com o codigo que tenho em baixo...

Fiz algumas observações

Sub exportarDados()

        'Inicia o Excel e abre o documento que desejamos
        Dim excelApp As New Excel.Application
        'A linha de baixo obriga a que o ficheiro exista... é mesmo isso que queres?
        Dim excelBook As Excel.Workbook = excelApp.Workbooks.Open("c:\plantilla.xls")
        Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
        'Torna o Excel invisível ao usuário até que a planilha seja preenchida
        excelApp.Visible = False
        With excelWorksheet
            'Formata os cabeçalhos das células
            .Range("B7").Value = "Código"
            .Range("B7").Font.Bold = True
            .Range("B7").ColumnWidth = 10
            .Range("C7").Value = "Endereço"
            .Range("C7").Font.Bold = True
            .Range("C7").ColumnWidth = 35
            .Range("D7").Value = "País"
            .Range("D7").Font.Bold = True
            .Range("D7").ColumnWidth = 15
            .Range("E7").Value = "Data"
            .Range("E7").Font.Bold = True
            .Range("E7").ColumnWidth = 10

            'define o indice da célula da qual iremos extrair os dados
            Dim i As Integer = 7

            'Preenche a planilha Excel
            'agora temos que colocar só o que necessitamos
            Try
                .Range("B" & i.ToString).Value = "1"
                .Range("C" & i.ToString).Value = "Rua 123"
                .Range("D" & i.ToString).Value = "Portugal"
                .Range("E" & i.ToString).Value = "19-04-1982"

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            'Torna o Excel visível
            excelApp.Visible = True
            'Para qye serve isto?
            'excelApp.SaveWorkspace("c:\xpto.xls") '--------- da erro no makeFileName
            excelBook.Close(True)
            'Aqui estas a destruir o objecto antes de o libertar, logo a linha de baixo dava erro. alterei a ordem
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
            excelApp = Nothing
        End With

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja Konsegui.

Obrigado pela ajuda, agora vou continuar a pesquisar para concluir o programa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja Konsegui.

Obrigado pela ajuda, agora vou continuar a pesquisar para concluir o programa.

Mas este problema já está resolvido, certo ?

Se tiveres outras duvidas crias um novo topico.

0

Partilhar esta mensagem


Link 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