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

André Parreira

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

Recommended Posts

André Parreira

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

Share this post


Link to post
Share on other sites
André Parreira

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

Share this post


Link to post
Share on other sites
André Parreira

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

Share this post


Link to post
Share on other sites
André Parreira

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

Share this post


Link to post
Share on other sites
José Lopes

Ele não reconhece a propriedade "xlsOption"


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
jpaulino

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 ?

Share this post


Link to post
Share on other sites
José Lopes

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...


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
jpaulino

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.

Share this post


Link to post
Share on other sites
José Lopes

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 ;-)


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
André Parreira

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
André Parreira

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
André Parreira

ja Konsegui.

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

Share this post


Link to post
Share on other sites
jpaulino

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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.