Passo a passo: Inserção de dados em uma pasta de trabalho em um servidor
Essa explicação passo a passo demonstra como inserir dados em um dataset que é armazenado em cache em uma pasta de trabalho do Microsoft Office Excel sem iniciar o excel usando a classe de ServerDocument .
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Essa explicação passo a passo mostra as seguintes tarefas:
Definindo um dataset que contém dados do banco de dados AdventureWorksLT.
Criar instâncias de dataset em um projeto de pasta de trabalho do Excel e em um projeto de aplicativo de console.
Criando ListObject que é associado ao conjunto de dados na pasta de trabalho.
Adicionando o conjunto de dados na pasta de trabalho para o cache de dados.
Inserindo dados no dataset em cache executando o código no aplicativo de console, sem iniciar o excel.
Embora este passo-a-passo assume que você está executando o código no seu computador de desenvolvimento, o código demonstrado por essa explicação passo a passo pode ser usado em um servidor que não tenha instalar o excel.
Observação |
---|
Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário Visual Studio nas instruções a seguir.A edição Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
-
Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
Excel 2013 ou Excel 2010.
Acesso a uma instância em execução do Microsoft SQL Server ou do Microsoft SQL Server express que tenha o banco de dados de exemplo AdventureWorksLT anexou-lhe.Você pode baixar o banco de dados AdventureWorksLT de Site de CodePlex.Para obter mais informações sobre como anexar um banco de dados, consulte os seguintes tópicos:
Para anexar um banco de dados usando o SQL Server Management Studio ou o SQL Server Management Studio Express, consulte Como: Anexar um banco de dados (SQL Server Management Studio).
Para anexar um banco de dados usando a linha de comando, consulte Como: Anexar um Arquivo ao banco de dados SQL Server Express.
Criando uma biblioteca Pack da classe que define um dataset
Para usar o mesmo dataset em um projeto de pasta de trabalho do Excel e em um aplicativo de console, você deve definir o conjunto de dados em um conjunto separado que é referenciado por ambos os projetos.Para essa explicação passo a passo, defina o dataset em um projeto de biblioteca de classes.
Para criar o projeto de biblioteca de classe
Inicie o Visual Studio
No menu File, aponte para New, e em seguida, clique em Project.
No painel de modelos, expanda Visual C# ou Visual Basic, e clique em Janelas.
Na lista de modelos de projeto, selecione Biblioteca de Classes.
Na caixa de Nome , digite AdventureWorksDataSet.
Clique Procurar, navegue até o seu %UserProfile% \ my documents (para Windows XP e anteriormente) ou pasta de %UserProfile% \ documents (para Windows Vista), e clique em Selecionar Pasta.
Na caixa de diálogo de Novo Projeto , certifique-se de que a caixa de seleção de Criar diretório para a solução não está marcada.
Clique em OK.
Visual Studio adiciona o projeto de AdventureWorksDataSet a Gerenciador de Soluções e abre o arquivo de código de Class1.cs ou de Class1.vb .
Em Gerenciador de Soluções, clique com o botão direito do mouse ou Class1.vbClass1.cs , clique em Excluir.Você não precisa esse arquivo para essa explicação passo a passo.
Configurando um dataset na biblioteca de classe Project
Defina um dataset tipado que contém dados do banco de dados AdventureWorksLT para o SQL Server 2005.Posteriormente nesta explicação passo a passo, você fará referência a esse conjunto de dados de um projeto de pasta de trabalho do Excel e de um projeto de aplicativo de console.
O dataset é um dataset tipado que representa os dados na tabela do banco de dados AdventureWorksLT.Para obter mais informações sobre datasets tipados, consulte Trabalhando com conjuntos de dados em Visual Studio.
Para definir um dataset tipado na biblioteca de classes projeto
Em Gerenciador de Soluções, clique no projeto de AdventureWorksDataSet .
Se a janela de Fontes de Dados não estiver visível, exibi-la por, na barra de menus, escolhendo Modo de Visualização, Outras Janelas, Fontes de Dados.
Escolha Adicionar Nova Fonte de Dados para iniciar Assistente para Configuração de Fonte de Dados.
Clique em Banco de Dados, e clique em Avançar.
Se você tiver uma conexão existente para o banco de dados AdventureWorksLT, escolha esses conexão e clique Avançar.
Se não, clique Nova Conexão, e use a caixa de diálogo de Adicionar Conexão para criar uma nova conexão.Para obter mais informações, consulte Passo a passo: Inserção de dados em uma pasta de trabalho em um servidor.
Na página de Save the Connection String to the Application Configuration File , clique Next.
Na página de Escolher Objetos do Banco de Dados , expanda e selecione TabelasProduto (SalesLT).
Clique em Concluir.
O arquivo de AdventureWorksLTDataSet.xsd é adicionado ao projeto de AdventureWorksDataSet .Esse arquivo define os seguintes itens:
Um conjunto de dados tipado chamado AdventureWorksLTDataSet.Este dataset representa o conteúdo da tabela produtos do banco de dados AdventureWorksLT.
TableAdapterProductTableAdapterchamado.Este TableAdapter pode ser usado para ler e gravar dados em AdventureWorksLTDataSet.Para obter mais informações, consulte Visão geral do TableAdapter.
Você usará ambos esses objetos posteriormente neste passo-a-passo.
Em Gerenciador de Soluções, clique com o botão direito do mouse AdventureWorksDataSet e clique Compilar.
Verifique se o projeto compila sem erros.
Criando uma pasta de trabalho de O Excel
Crie um projeto de pasta de trabalho do Excel para a interface a dados.Posteriormente nesta explicação passo a passo, você criará ListObject que exibe os dados, e você adicionará uma instância do conjunto de dados para o cache de dados na pasta de trabalho.
Para criar o projeto de pasta de trabalho do Excel
Em Gerenciador de Soluções, clique com o botão direito do mouse na solução de AdventureWorksDataSetAdicionar, aponte para, e clique em Novo Projeto.
No painel de modelos, expanda Visual C# ou Visual Basic e, em seguida, expanda Office/SharePoint.
Sob o nó expandido de Office/SharePoint , selecione o nó de Suplementos do Office .
Na lista de modelos de projeto, selecione o projeto de Pasta de Trabalho do Excel 2010 ou de Pasta de Trabalho do Excel 2013 .
Na caixa de Nome , digite AdventureWorksReport.Não altere o local.
Clique em OK.
Visual Studio Tools para Office Project Wizard abre.
Certifique-se de que Criar um Novo Documento ser selecionado e, clicar-se OK.
Visual Studio abra a pasta de trabalho de AdventureWorksReport no designer e adiciona o projeto de AdventureWorksReport a Gerenciador de Soluções.
Adicionar o dataset a fontes de dados na pasta de trabalho de O Excel
Antes que você possa exibir o conjunto de dados na pasta de trabalho do Excel, você deve primeiro adicionar o dataset a fontes de dados no projeto de pasta de trabalho do Excel.
Para adicionar o dataset a fontes de dados na pasta de trabalho do Excel projeto
Em Gerenciador de Soluções, clique duas vezes Sheet1.cs ou Sheet1.vb no projeto de AdventureWorksReport .
A pasta de trabalho abre no designer.
No menu Data, clique em Add New Data Source.
O Data Source Configuration Wizard é aberto.
Clique em Objeto, e clique em Avançar.
Em Selecione o Objeto que Deseja Ligar a página, clique Adicionar Referência.
Na guia de Projetos , clique em AdventureWorksDataSet e clique em OK.
Sob o namespace de AdventureWorksDataSet do conjunto de AdventureWorksDataSet , clique em AdventureWorksLTDataSet e clique em Concluir.
A janela de Fontes de Dados abre, e AdventureWorksLTDataSet é adicionado à lista de fontes de dados.
Criando um ListObject que está associado a uma instância do dataset
Para exibir o conjunto de dados na pasta de trabalho, crie ListObject que está associada a uma instância do dataset.Para obter mais informações sobre associar controles a dados, consulte A ligação de dados a controles em soluções do Office.
Para criar um ListObject que está associado a uma instância do dataset
Na janela de Fontes de Dados , expanda o nó de AdventureWorksLTDataSet em AdventureWorksDataSet.
Selecione o nó de Produto , clique na seta suspensa que aparece, e ListObject selecione na lista suspensa.
Se a seta suspensa não aparecer, verifique se a pasta de trabalho é aberto no designer.
Arraste a tabela de Produto para a célula A1.
Um controle de ListObject chamado productListObject é criado na planilha, começando a célula A1.Ao mesmo tempo, um objeto de dataset chamado adventureWorksLTDataSet e BindingSource chamado productBindingSource é adicionado ao projeto.ListObject é associado a BindingSource, que por sua vez é associado ao objeto de dataset.
Adicionar o dataset para o cache de dados
Para ativar código fora do projeto de pasta de trabalho do Excel acessar o conjunto de dados na pasta de trabalho, você deve adicionar o dataset para o cache de dados.Para obter mais informações sobre o cache de dados, consulte Dados armazenados em cache no nível do documento personalizações e Cache de dados.
Para adicionar o dataset para o cache de dados
No designer, clique adventureWorksLTDataSet.
Na janela de Propriedades , defina a propriedade de Modificadores a Público.
Defina a propriedade da CacheInDocumentTrue.
Ponto de Verificação
Compilar e executar o projeto de pasta de trabalho do Excel garantir que compila e executa sem erros.
Para compilar e executar o projeto
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de AdventureWorksReport , escolha Depurar, clique em Iniciar nova instância.
O projeto é compilado, e a pasta de trabalho abre o excel.ListObject em Sheet1 está vazia, porque o objeto de adventureWorksLTDataSet no cache de dados não possui ainda dados.Na próxima seção, você usará um aplicativo de console preencher o objeto de adventureWorksLTDataSet com dados.
Feche o excel.Não salvar as alterações.
Criando um aplicativo de console Project
Crie um projeto de aplicativo de console usar para inserir dados no dataset em cache na pasta de trabalho.
Para criar o projeto de aplicativo de console
Em Gerenciador de Soluções, clique com o botão direito do mouse na solução de AdventureWorksDataSetAdicionar, aponte para, e clique em Novo Projeto.
No painel Tipos de projeto, expanda Visual C# ou Visual Basic, e clique em Janelas.
No painel de Modelos , Aplicativo de Consoleselecione.
Na caixa de Nome , digite DataWriter.Não altere o local.
Clique em OK.
Visual Studio adiciona o projeto de DataWriter a Gerenciador de Soluções e abre o arquivo de código de Module.vb ou Module1.vb .
Adicionando dados para o dataset em cache usando o aplicativo de console
Use a classe de ServerDocument no aplicativo de console preencher o dataset em cache na pasta de trabalho com dados.
Para adicionar dados ao dataset em cache
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de DataWriter e clique em Adicionar Referência.
Na guia do .NETMicrosoft.VisualStudio.Tools.Applications.ServerDocument, selecione.
Clique em OK.
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de DataWriter e clique em Adicionar Referência.
Na guia de Projetos , em AdventureWorksDataSetselecione, e clique em OK.
Abra o arquivo Module1.vb de Module.vb ou no editor de códigos.
Adicione o seguinte using (para C#) ou a declaração de Imports (Visual Basic) para a parte superior do arquivo de código.
Imports Microsoft.VisualStudio.Tools.Applications
using Microsoft.VisualStudio.Tools.Applications;
Adicione o seguinte código ao método Main.Esse código declara os seguintes objetos:
Instâncias dos tipos de AdventureWorksLTDataSet e de ProductTableAdapter que são definidos no projeto de AdventureWorksDataSet .
O caminho para a pasta de trabalho de AdventureWorksReport na pasta de compilação do projeto de AdventureWorksReport .
Um objeto de ServerDocument para usar acessar o cache de dados na pasta de trabalho.
Observação O código a seguir pressupõe que você está usando uma pasta de trabalho que possui a extensão do arquivo. xlsx.Se a pasta de trabalho em seu projeto possui uma extensão de arquivo diferente, modifique o caminho conforme necessário.
Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet() Dim productTableAdapter As _ New AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter() Dim workbookPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.MyDocuments) & _ "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx" Dim serverDocument1 As ServerDocument = Nothing
AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet = new AdventureWorksDataSet.AdventureWorksLTDataSet(); AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter = new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter(); string workbookPath = System.Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments) + @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx"; ServerDocument serverDocument1 = null;
Adicione o seguinte código ao método de Main , após o código que você adicionou na etapa anterior.Esse código executa as seguintes tarefas:
Preenche o objeto de dataset tipado usando o adaptador da tabela.
Usa a propriedade de CachedData da classe de ServerDocument para acessar o dataset em cache na pasta de trabalho.
Usa o método de SerializeDataInstance para preencher o dataset em cache com dados para o dataset tipado local.
Try productTableAdapter.Fill(productDataSet.Product) Console.WriteLine("The local dataset is filled.") serverDocument1 = New ServerDocument(workbookPath) Dim dataHostItem1 As CachedDataHostItem = _ serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1") Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet") ' Initialize the worksheet dataset with the local dataset. If dataItem1 IsNot Nothing Then dataItem1.SerializeDataInstance(productDataSet) serverDocument1.Save() Console.WriteLine("The data is saved to the data cache.") Else Console.WriteLine("The data object is not found in the data cache.") End If Catch ex As System.Data.SqlClient.SqlException Console.WriteLine(ex.Message) Catch ex As System.IO.FileNotFoundException Console.WriteLine("The specified workbook does not exist.") Finally If Not (serverDocument1 Is Nothing) Then serverDocument1.Close() End If Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.") Console.ReadLine() End Try
try { productTableAdapter.Fill(productDataSet.Product); Console.WriteLine("The local dataset is filled."); serverDocument1 = new ServerDocument(workbookPath); CachedDataHostItem dataHostItem1 = serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"]; CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"]; // Initialize the worksheet dataset with the local dataset. if (dataItem1 != null) { dataItem1.SerializeDataInstance(productDataSet); serverDocument1.Save(); Console.WriteLine("The data is saved to the data cache."); Console.ReadLine(); } else { Console.WriteLine("The data object is not found in the data cache."); } } catch (System.Data.SqlClient.SqlException ex) { Console.WriteLine(ex.Message); } catch (System.IO.FileNotFoundException) { Console.WriteLine("The specified workbook does not exist."); } finally { if (serverDocument1 != null) { serverDocument1.Close(); } Console.WriteLine("\n\nPress Enter to close the application."); Console.ReadLine(); }
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de DataWriter , aponte para Depurar, e então clique em Iniciar nova instância.
O projeto é compilado, e o aplicativo de console várias mensagens de status enquanto o conjunto de dados local é preenchido e quando o aplicativo salva os dados para o dataset em cache na pasta de trabalho.Pressione ENTER de para fechar o aplicativo.
Testando a pasta de trabalho
Quando você abre a pasta de trabalho, ListObject agora exibe os dados que foram adicionados ao dataset em cache usando o aplicativo de console.
Para testar a pasta de trabalho
Feche a pasta de trabalho de AdventureWorksReport no designer do Visual Studio, se ainda está aberta.
No gerenciador de Arquivos, abra a pasta de trabalho de AdventureWorksReport que está na pasta de compilação do projeto de AdventureWorksReport .Por padrão, a pasta de compilação estiver em um dos seguintes locais:
%UserProfile% \ my documents \ AdventureWorksReport \ bin \ debug (para Windows XP e anteriormente)
%UserProfile% \ documents \ AdventureWorksReport \ bin \ debug (para Windows Vista)
Verifique se ListObject é preenchido com dados depois de abrir a pasta de trabalho.
Próximas etapas
Você pode aprender mais sobre como trabalhar com dados armazenados em cache desses tópicos:
- Modificando os dados em um dataset em cache sem iniciar o excel.Para obter mais informações, consulte Passo a passo: Alterando dados armazenados em cache em uma pasta de trabalho em um servidor.
Consulte também
Tarefas
Passo a passo: Alterando dados armazenados em cache em uma pasta de trabalho em um servidor