Aprenda a trabalhar com o Excel usando VSTO - Guia Completo!
Índice:
- Introdução
- Entendendo o modelo de objeto do Excel
- Trabalhando com o objeto Workbook
3.1 Criando e abrindo uma nova pasta de trabalho
3.2 Obtendo uma referência para uma pasta de trabalho
3.3 Salvando e fechando uma pasta de trabalho
3.4 Percorrendo as pastas de trabalho abertas
- Trabalhando com o objeto Worksheet
4.1 Adicionando uma nova planilha
4.2 Obtendo uma referência para uma planilha
4.3 Renomeando, reorganizando e excluindo uma planilha
4.4 Percorrendo as planilhas de uma pasta de trabalho
- Trabalhando com o objeto Range
5.1 Obtendo uma referência para uma célula
5.2 Lendo e gravando dados em células
5.3 Percorrendo um intervalo de células
5.4 Formatando células
- Considerações finais
Introdução
Seja bem-vindo ao nosso guia completo sobre como trabalhar com o Microsoft Excel usando VSTO! Neste vídeo, vamos explorar o modelo de objeto do Excel e aprender como utilizar os principais objetos e métodos para criar soluções personalizadas. Se você está começando agora ou já tem alguma experiência com VSTO, este guia irá ajudá-lo a aprimorar suas habilidades e aproveitar ao máximo o Excel.
Entendendo o modelo de objeto do Excel
Antes de mergulharmos nos detalhes, é importante entender o modelo de objeto do Excel. O modelo de objeto é uma estrutura hierárquica que permite acessar e controlar todos os elementos do Excel, desde a aplicação em si até as pastas de trabalho, planilhas e células individuais. No topo da hierarquia está o objeto Application, que representa a própria aplicação do Excel. A partir dele, podemos acessar os demais objetos que compõem o modelo de objeto.
Trabalhando com o objeto Workbook
O objeto Workbook representa uma única pasta de trabalho dentro do aplicativo do Excel. Podemos criar uma nova pasta de trabalho ou abrir uma existente usando o objeto Workbooks. Para criar uma nova pasta de trabalho, podemos usar o método Add do objeto Workbooks. Para abrir uma pasta de trabalho existente, usamos o método Open e passamos o caminho do arquivo como parâmetro.
3.1 Criando e abrindo uma nova pasta de trabalho
Para criar uma nova pasta de trabalho, utilizamos o seguinte código:
Dim workbooks As Microsoft.Office.Interop.Excel.Workbooks = Globals.ThisAddIn.Application.Workbooks
Dim newWorkbook As Microsoft.Office.Interop.Excel.Workbook = workbooks.Add()
Para abrir uma pasta de trabalho existente, utilizamos o seguinte código:
Dim workbooks As Microsoft.Office.Interop.Excel.Workbooks = Globals.ThisAddIn.Application.Workbooks
Dim existingWorkbook As Microsoft.Office.Interop.Excel.Workbook = workbooks.Open("C:\Caminho\para\o\arquivo.xlsx")
3.2 Obtendo uma referência para uma pasta de trabalho
É comum precisarmos obter uma referência para uma pasta de trabalho para poder manipulá-la posteriormente. Podemos fazer isso de diferentes formas, como obter a pasta de trabalho ativa, obter uma pasta de trabalho pelo seu nome ou obter uma pasta de trabalho pelo seu índice.
3.2.1 Obtendo a pasta de trabalho ativa
Para obter a pasta de trabalho ativa, podemos utilizar o seguinte código:
Dim activeWorkbook As Microsoft.Office.Interop.Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
3.2.2 Obtendo a pasta de trabalho pelo nome
Para obter uma pasta de trabalho pelo seu nome, podemos utilizar o seguinte código:
Dim workbooks As Microsoft.Office.Interop.Excel.Workbooks = Globals.ThisAddIn.Application.Workbooks
Dim workbookByName As Microsoft.Office.Interop.Excel.Workbook = workbooks("NomeDaPastaDeTrabalho")
3.2.3 Obtendo a pasta de trabalho pelo índice
Para obter uma pasta de trabalho pelo seu índice, podemos utilizar o seguinte código:
Dim workbooks As Microsoft.Office.Interop.Excel.Workbooks = Globals.ThisAddIn.Application.Workbooks
Dim workbookByIndex As Microsoft.Office.Interop.Excel.Workbook = workbooks.Item(1)
3.3 Salvando e fechando uma pasta de trabalho
Após realizar as modificações necessárias em uma pasta de trabalho, é importante salvá-la e fechá-la adequadamente. Para salvar uma pasta de trabalho, utilizamos o método Save ou SaveAs do objeto Workbook. Para fechar uma pasta de trabalho, utilizamos o método Close.
' Salvando a pasta de trabalho
workbook.Save()
' Salvando a pasta de trabalho em um novo arquivo
workbook.SaveAs("C:\Caminho\para\salvar\a\pasta.xlsx")
' Fechando a pasta de trabalho
workbook.Close()
3.4 Percorrendo as pastas de trabalho abertas
Se precisarmos percorrer todas as pastas de trabalho abertas no Excel, podemos utilizar um loop para isso. Podemos utilizar o objeto Workbooks para obter a coleção de pastas de trabalho e, em seguida, percorrer essa coleção. Aqui está um exemplo em VB.NET:
Dim workbooks As Microsoft.Office.Interop.Excel.Workbooks = Globals.ThisAddIn.Application.Workbooks
For Each workbook As Microsoft.Office.Interop.Excel.Workbook In workbooks
' Realizar alguma ação com a pasta de trabalho
Dim workbookName As String = workbook.Name
Next workbook
Trabalhando com o objeto Worksheet
O objeto Worksheet representa uma única planilha dentro de uma pasta de trabalho do Excel. Assim como com o objeto Workbook, podemos criar uma nova planilha, obter uma referência para uma planilha existente e realizar outras operações de manipulação.
4.1 Adicionando uma nova planilha
Para adicionar uma nova planilha a uma pasta de trabalho, utilizamos o método Add do objeto Worksheets. Aqui está um exemplo em VB.NET:
Dim worksheets As Microsoft.Office.Interop.Excel.Worksheets = workbook.Worksheets
Dim newWorksheet As Microsoft.Office.Interop.Excel.Worksheet = worksheets.Add()
4.2 Obtendo uma referência para uma planilha
Assim como fizemos com o objeto Workbook, podemos obter uma referência para uma planilha utilizando diferentes métodos. Podemos obter a planilha ativa, obter uma planilha pelo seu nome ou obter uma planilha pelo seu índice.
4.2.1 Obtendo a planilha ativa
Para obter a planilha ativa, podemos utilizar o seguinte código:
Dim activeSheet As Microsoft.Office.Interop.Excel.Worksheet = workbook.ActiveSheet
4.2.2 Obtendo a planilha pelo nome
Para obter uma planilha pelo seu nome, podemos utilizar o seguinte código:
Dim worksheets As Microsoft.Office.Interop.Excel.Worksheets = workbook.Worksheets
Dim worksheetByName As Microsoft.Office.Interop.Excel.Worksheet = worksheets("NomeDaPlanilha")
4.2.3 Obtendo a planilha pelo índice
Para obter uma planilha pelo seu índice, podemos utilizar o seguinte código:
Dim worksheets As Microsoft.Office.Interop.Excel.Worksheets = workbook.Worksheets
Dim worksheetByIndex As Microsoft.Office.Interop.Excel.Worksheet = worksheets.Item(1)
4.3 Renomeando, reorganizando e excluindo uma planilha
Podemos realizar várias operações de manipulação em uma planilha, como renomear, reorganizar e excluir. Para renomear uma planilha, utilizamos a propriedade Name do objeto Worksheet. Para reorganizar uma planilha, utilizamos o método Move do objeto Worksheet. Para excluir uma planilha, utilizamos o método Delete do objeto Worksheet.
' Renomeando uma planilha
worksheet.Name = "NovoNome"
' Reorganizando uma planilha
worksheet.Move(Before:=worksheets(1)) ' Move a planilha para a posição 1
worksheet.Move(After:=worksheets(2)) ' Move a planilha para a posição 2
' Excluindo uma planilha
worksheet.Delete()
4.4 Percorrendo as planilhas de uma pasta de trabalho
Se precisarmos percorrer todas as planilhas de uma pasta de trabalho, podemos utilizar um loop para iterar sobre a coleção de planilhas. Podemos utilizar o objeto Worksheets para obter essa coleção e, em seguida, percorrer cada planilha. Aqui está um exemplo em VB.NET:
Dim worksheets As Microsoft.Office.Interop.Excel.Worksheets = workbook.Worksheets
For Each worksheet As Microsoft.Office.Interop.Excel.Worksheet In worksheets
' Realizar alguma ação com a planilha
Dim worksheetName As String = worksheet.Name
Next worksheet
Trabalhando com o objeto Range
O objeto Range é usado para representar um intervalo de células no Excel. Podemos obter uma referência para uma célula, ler e gravar dados nas células, percorrer um intervalo de células e formatar células usando o objeto Range.
5.1 Obtendo uma referência para uma célula
Quando precisamos obter uma referência para uma célula específica, podemos usar a propriedade Cells do objeto Worksheet e passar os parâmetros para identificar a célula desejada. Aqui está um exemplo em VB.NET:
Dim worksheet As Microsoft.Office.Interop.Excel.Worksheet = workbook.Worksheets(1)
Dim cell As Microsoft.Office.Interop.Excel.Range = worksheet.Cells(1, 1) ' Célula A1
5.2 Lendo e gravando dados em células
Para ler e gravar dados em células, utilizamos a propriedade Value2 do objeto Range. Podemos ler o valor de uma célula atribuindo a propriedade a uma variável. Para gravar um valor em uma célula, atribuímos o valor à propriedade.
' Lendo o valor de uma célula
Dim cellValue As Object = cell.Value2
' Gravando um valor em uma célula
cell.Value2 = "Novo valor"
5.3 Percorrendo um intervalo de células
Para percorrer um intervalo de células, podemos usar um loop e a propriedade Range do objeto Worksheet. Existem diferentes maneiras de especificar um intervalo de células, como utilizando uma notação de intervalo (por exemplo, "A1:B2") ou especificando as células individualmente.
Dim range As Microsoft.Office.Interop.Excel.Range = worksheet.Range("A1:B2")
For Each cell As Microsoft.Office.Interop.Excel.Range In range
' Realizar alguma ação com a célula
Dim cellValue As Object = cell.Value2
Next cell
5.4 Formatando células
Para formatar células, utilizamos as propriedades e métodos do objeto Range. Podemos alterar a formatação da fonte, do alinhamento, da borda e muito mais. Aqui está um exemplo de formatação de células em VB.NET:
' Alterando o formato da fonte
range.Font.Bold = True
range.Font.Italic = True
range.Font.Name = "Arial"
' Alterando a borda
range.Borders.Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin
range.Borders.Color = RGB(0, 0, 0)
' Preenchendo as células com uma cor
range.Interior.Color = RGB(255, 255, 0)
Considerações finais
Neste vídeo, apresentamos uma visão geral sobre como trabalhar com o modelo de objeto do Excel utilizando o VSTO. Exploramos os objetos Workbook, Worksheet e Range, aprendendo como criar, abrir, manipular e formatar pastas de trabalho, planilhas e células. Agora você está preparado para criar soluções personalizadas no Excel usando VSTO. Experimente esses conceitos e explore mais a fundo os recursos do Excel.