locked
Tirar linhas do Excel Via codigo

    Pergunta

  • Olá Galera... Gostaria de saber, como retirar linhas de um arquivo excel, via codigo (vb.net)

    Grato pela Atenção Pessoal...
    sexta-feira, 25 de janeiro de 2008 16:55

Respostas

  • Oi Luis,

     

    o primeiro passo é fazer referência à biblioteca do Excel: Ad Reference > COM > Microsoft Excel x.x Object Library

     

    Depois fazer o Imports no início do módulo (para facilitar a codificação):

     

    Code Snippet

    Imports Excel = Microsoft.Office.Interop.Excel

     

     

     

    Por fim, fazer o código conforme o colega acima falou:

     

    Code Snippet

    Imports Excel = Microsoft.Office.Interop.Excel

    Public Class myExcel

    Public Sub RemoveLinhas(ByVal CaminhoArquivo As String)

    'Remove as 3 primeiras linhas da primeira planilha da pasta de trabalho

    Dim oWkb As Excel.Workbook

    oWkb = GetObject(CaminhoArquivo)

    oWkb.Application.Visible = True

    Dim oWks As Excel.Worksheet = oWkb.Worksheets(1)

    'Preenche alguns dados para testar

    oWks.Range("A1:A5").Value = "Teste linha"

    For i As Integer = 1 To 5

    oWks.Cells(i, 2).value = i

    Next i

    'Exclui as três primeiras linhas

    oWks.Range("1:3").Delete()

    End Sub

    End Class

     

     

    domingo, 27 de janeiro de 2008 00:03
    Moderador

Todas as Respostas

  • Em VBA teríamos várias opções:

     

    Rows(i).Delete

    Rows("1:5").Delete

    Cells(i,j).EntireRow.Delete

    Range(Cells(i,j),Cells(k,l)).EntireRow.Delete

     

    Espero que ajude.

     

    []s

    sexta-feira, 25 de janeiro de 2008 17:38
  • Vou ser um pouco mais espefico... eu nunca usei excel alem do uso habitual... so que agora, eu tenhu um projeto.. e parte dele, é tirar as 3 primeiras linhas de um arquivo excel antes de manipula-lo... eu consigo manipulalo perfeitamente já... pois copio o conteudo dele para um datatable, e trabalho com os dados lá.. so que com essas 3 linhas, o datatable fica completamente louco e desorientado....

    gostaria de saber como deletar essas 3 linhas, so que desde o começo.. pois nao tenhu nem a menor ideia do que fazer com os codigos que o colega acima me forneceu...

    grato pela atençao pessoal...
    sexta-feira, 25 de janeiro de 2008 17:44
  • Vamos ver se ajuda.

    Eu não entendo nada de VB, mas a tua estrutura deve seguir os passos abaixo

     

    Dim Planilha As Excel.Worksheet

     

    Planilha = Workbooks(1).Worksheets("Sheet1")

     

    Planilha.Rows("1:3").Delete

     

    Veja se ajuda.

     

    sexta-feira, 25 de janeiro de 2008 18:27
  • Oi Luis,

     

    o primeiro passo é fazer referência à biblioteca do Excel: Ad Reference > COM > Microsoft Excel x.x Object Library

     

    Depois fazer o Imports no início do módulo (para facilitar a codificação):

     

    Code Snippet

    Imports Excel = Microsoft.Office.Interop.Excel

     

     

     

    Por fim, fazer o código conforme o colega acima falou:

     

    Code Snippet

    Imports Excel = Microsoft.Office.Interop.Excel

    Public Class myExcel

    Public Sub RemoveLinhas(ByVal CaminhoArquivo As String)

    'Remove as 3 primeiras linhas da primeira planilha da pasta de trabalho

    Dim oWkb As Excel.Workbook

    oWkb = GetObject(CaminhoArquivo)

    oWkb.Application.Visible = True

    Dim oWks As Excel.Worksheet = oWkb.Worksheets(1)

    'Preenche alguns dados para testar

    oWks.Range("A1:A5").Value = "Teste linha"

    For i As Integer = 1 To 5

    oWks.Cells(i, 2).value = i

    Next i

    'Exclui as três primeiras linhas

    oWks.Range("1:3").Delete()

    End Sub

    End Class

     

     

    domingo, 27 de janeiro de 2008 00:03
    Moderador
  • olá... você me ajudou completamente...

    somente mais uma duvida... com esse codigo, o excel abre... como eu faço isso sem abrir o excel?

    grato pela atenção pessoal!
    segunda-feira, 28 de janeiro de 2008 17:25
  • eu comentei a linha:

    Code Snippet

     oWkb.Application.Visible = True


    e ele não abriu o excel, como eu queria... so que na segunda veiz q eu abro o codigo, ele deleta os proximas 5 linhas, ou seja, eu nao abriu o excel visivelmente mais ele abriu na memoria... como eu posso tira-lo da memoria?
    segunda-feira, 28 de janeiro de 2008 18:26