ID do artigo: 247412 - Última revisão: quinta-feira, 25 de maio de 2006 - Revisão: 8.0 Métodos para transferir dados do Visual Basic para o Excel
Sumário Este artigo descreve os vários métodos para transferir os
dados do aplicativo Microsoft Visual Basic para o Microsoft Excel. O artigo
também apresenta as vantagens e as desvantagens de cada um dos métodos para que
você possa selecionar a solução que mais bem se adapte à sua
situação. Mais Informações O método mais usado para transferir dados para uma pasta de
trabalho do Excel é Automação. A automação lhe dá o que há de melhor em termos
de flexibilidade para a especificação do local dos dados na pasta de trabalho,
bem como a capacidade de formatar a pasta de trabalho e fazer várias
configurações no momento da execução. Com ela, é possível usar vários métodos
para transferir os dados:
Usar a automação para transferir os dados célula por célulaCom a Automação, é possível transferir os dados para uma planilha uma célula por vez, da seguinte forma:216400
(http://support.microsoft.com/kb/216400/
)
PRB: O processo cruzado de Automação COM é capaz de travar o aplicativo cliente no Win95/98
Mais uma vez, a transferência de dados célula por
célula só é aceitável para pequenas quantidades de dados. Se você precisar
transferir conjuntos de dados muito grandes para o Excel, será necessário
avaliar as soluções apresentadas posteriormente.Para obter um código de exemplo para a automação do Excel, consulte o seguinte artigo na Base de Dados de Conhecimento da Microsoft: 219151
(http://support.microsoft.com/kb/219151/
)
Como automatizar o Microsoft Excel a partir do Visual Basic
Usar a automação para transferir dados de uma matriz para um intervalo de células em uma planilhaÉ possível transferir uma matriz de dados para um intervalo de várias células de uma só vez:Usar a automação para transferir um conjunto de dados ADO para um intervalo de planilhaO Excel 2000 introduziu o método CopyFromRecordset que lhe permite transferir um conjunto de registros ADO (ou DAO) para um intervalo em uma planilha. O seguinte código ilustra de que forma você poderia automatizar o Excel 2000, o Excel 2002 ou o Office Excel 2003 e transferir o conteúdo da tabela Orders no banco de dados de exemplo Northwind com o método CopyFromRecordset:Para obter informações adicionais sobre como usar o ADO e o método CopyFromRecordset, consulte o seguinte artigo na Base de Dados de Conhecimento da Microsoft: 246335
(http://support.microsoft.com/kb/246335/
)
Como transferir dados de um conjunto de registros ADO para o Excel com a automação
Usar a automação para criar um objeto QueryTable em uma planilhaUm objeto QueryTable representa uma tabela criada a partir dos dados retornados de uma origem de dados externa. Durante a automação do Microsoft Excel, você pode criar uma QueryTable, apenas fornecendo uma seqüência de conexão a uma origem de dados OLEDB ou ODBC e uma seqüência SQL. O Excel assume a responsabilidade pela geração do conjunto de registros e pela inserção na planilha no local especificado. O uso de QueryTables apresenta as seguintes vantagens em relação ao método CopyFromRecordset:
Uso da área de transferênciaTambém é possível usar a Área de transferência do Windows como um mecanismo para transferir os dados para uma planilha. Para colar dados em várias células de uma planilha, você pode copiar uma seqüência em que as colunas são separadas por tabulações e as linhas, por retornos de carro. O seguinte código ilustra de que forma o Visual Basic pode usar o objeto Clipboard para transferir dados para o Excel:Criar um arquivo de texto separado que pode ser analisado pelo Excel em linhas e colunasO Excel é capaz de abrir arquivos separados por tabulações ou vírgulas e analisar corretamente os dados em células. Você pode usar esse recurso quando for preciso transferir uma grande quantidade de dados para uma planilha com pouca, ou nenhuma automação. Pode se tratar de um bom método para um aplicativo do lado do cliente, já que o arquivo de texto pode ser gerado do lado do servidor. Em seguida, é possível abrir o arquivo de texto no cliente, usando a Automação quando for preciso.O seguinte código ilustra como é possível criar um arquivo separado por vírgulas a partir de um conjunto de registros ADO: No exemplo de código anterior, o Excel foi iniciado com a instrução Shell e o nome do arquivo foi usado como um argumento de linha de comando. Nenhuma automação foi usada no exemplo anterior. No entanto, se desejado, é possível usar uma quantidade mínima de automação para abrir o arquivo de texto e salvá-lo no formato de pasta de trabalho do Excel: 172267
(http://support.microsoft.com/kb/172267/
)
Exemplo: RECEDIT.VBP apresenta E/S de arquivo no Visual Basic
Transferir dados para uma planilha usando o ADO.NETCom o Microsoft Jet OLE DB Provider, você pode adicionar registros a uma tabela de uma pasta de trabalho do Excel já existente. Uma "Tabela" no Excel é apenas um intervalo com um nome definido. A primeira linha do intervalo deve conter os cabeçalhos (ou nomes de campo) e todas as demais linhas subseqüentes, os registros. A seguinte etapa ilustra de que forma é possível criar uma pasta de trabalho usando uma tabela vazia Minha_tabela:
Não se esqueça de que quando um registro é adicionado a uma célula ou a células na planilha, ele substitui todos os dados já existentes, em outras palavras, as linhas da tabela não são "deslocadas" quando novos registros são adicionados. Você deve se lembrar disso ao criar o layout dos dados de suas planilhas. Observação O método de atualização dos dados em uma planilha do Excel usando ADO ou DAO não funciona no ambiente Visual Basic for Application dentro do Access, após a instalação do Office 2003 Service Pack 2 (SP2) ou da atualização para o Access 2002, inclusa no artigo 904018 da Base de Dados de Conhecimento da Microsoft. O método funciona bem no ambiente Visual Basic for Application de outros aplicativos do Office, como Word, Excel e Outlook. Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento da Microsoft: 904953
(http://support.microsoft.com/kb/904953/
)
Você não pode alterar, adicionar ou excluir dados nas tabelas que estejam vinculados a uma planilha do Excel no Office Access 2003 ou no Access 2002
904018
(http://support.microsoft.com/kb/904018/
)
Descrição da atualização para o Access 2002: 18 de outubro de 2005
Para obter informações adicionais sobre como usar o ADO para acessar uma planilha do Excel, consulte os seguintes artigos na Base de Dados de Conhecimento da Microsoft: 195951
(http://support.microsoft.com/kb/195951/
)
Como consultar e atualizar dados do Excel usando ADO a partir do ASP
Usar DDE para transferir dados para o ExcelDDE é uma alternativa à automação, como um meio de comunicação com o Excel e de transferência de dados, porém, com o advento da automação e do COM, o DDE deixou de ser o método preferencial para a comunicação com outros aplicativos e só deve ser usado quando não houver outra solução disponível.Para transferir dados para o Excel usando DDE, você pode:
Observação No exemplo, Text1 representa um controle Text Box de um formulário do Visual Basic: Ao usar LinkExecute para solicitar a execução de um comando ao Excel, você deve informar a ele o comando na sintaxe XLM (Excel Macro Language). A documentação XLM não está inclusa nas versões do Excel 97 e mais recentes. Para obter informações adicionais sobre como adquirir a documentação XLM, consulte o seguinte artigo na Base de Dados de Conhecimento da Microsoft: 143466
(http://support.microsoft.com/kb/143466/
)
XL97: Arquivo Macro97.exe disponível em serviços online
DDE não é uma solução recomendada para a
comunicação com o Excel. A automação oferece o que há de melhor em
flexibilidade, além de dar mais acesso aos novos recursos oferecidos pelo
Excel.Referências
Para obter informações adicionais, clique no número abaixo para ler o artigo na
Base de Dados de Conhecimento da Microsoft: 306022
(http://support.microsoft.com/kb/306022/
)
Como transferir dados para uma planilha do Excel usando o Visual Basic .NET
A informação contida neste artigo aplica-se a:
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Voltar para o início