Demonstra Passo a passo: Inserindo dados em uma pasta de trabalho em um servidor
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Tipo de Projeto
Versão do Microsoft Office
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Esta explicação passo a passo demonstra como inserir dados em um dataset que é armazenada em cache em uma pasta de trabalho do Microsoft Office Excel sem iniciar o Excel usando a classe ServerDocument.Esta explicação passo a passo fornece instruções passo a passo para usando o exemplo de código é fornecido no Como: Inserir dados em uma pasta de trabalho em um servidor.
Essa explicação passo a passo ilustra as seguintes tarefas:
Definição de um dataset que contém dados do banco de dados AdventureWorksLT para Microsoft SQL Servidor 2005.
Criando instâncias do dataset em um projeto de pasta de trabalho do Excel e um projeto de Aplicativo do Console.
Criar um ListObject que é Ligado para o dataset na pasta de trabalho.
Adicionar o dataset na pasta de trabalho ao cache de dados.
Inserindo dados para o dataset em cache executando o código no Aplicativo do Console, sem iniciar o Excel.
Embora esta explicação passo a passo assume que você está executando o código no seu computador de desenvolvimento, o código demonstrado nesta explicação passo a passo pode ser usado em um servidor que não tenha o Excel instalado.
Observação: |
---|
Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir.A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações do Visual Studio. |
Pré-requisitos
Para completar este passo a passo, são necessários os seguintes componentes:
Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).
Ferramentas do Visual Studio para o Office é instalado por padrão com as versões listadas do Visual Studio.Para Marcar se ele está instalado, Marcar Instalando o Visual Studio Tools para Office.
O Excel 2007 ou no Excel 2003.
Acessar a uma instância Executando do SQL Servidor 2005 ou SQL Servidor 2005 Express que tenha o AdventureWorksLT exemplo de banco de dados anexado a ele.Você pode baixar o banco de dados AdventureWorksLT de CodePlex Web site.Para obter mais informações sobre anexando um banco de dados, consulte os tópicos a seguir:
Para anexar um banco de dados usando SQL Servidor Management Studio ou SQL Servidor Management Studio Express, consulte como para: Anexe um banco de dados (SQL Servidor Management Studio).
Para anexar um banco de dados usando a linha de comando, consulte como para: Anexe um arquivo de banco de dados a SQL Servidor Express.
Criando um projeto de biblioteca de classes que define um DataSet
Para usar o mesmo dataset em um projeto de pasta de trabalho do Excel e um Aplicativo do Console, você deve definir o conjunto de dados em um assembly separado que é citado pelo ambos esses projetos.Para esta explicação passo a passo, Definir o dataset em um projeto de Biblioteca de Classess.
Para criar o projeto de Biblioteca de Classes
Inicie o Visual Studio
No menu File, aponte para New, e em seguida, clique em Project.
No painel de A Projeto Types, Expandirir Visual C# ou Visual Basice clique em Windows.
No painel modelos, Selecionar De biblioteca de classes.
Na caixa Nome, tipo AdventureWorksDataSet.
Clique em Procurar, navegue para seu %UserProfile%\My documentos (para o Windows XP e anteriormente) ou a pasta %UserProfile%\Documents (para Windows Vista) e, em seguida, clique em Selecionar a pasta.
Na Novo Projeto caixa de diálogo, verifique que a Criar Diretório for solução Caixa de Marcar não estiver Selecionadoda.
Clique em OK.
Visual Studio adiciona o projeto de AdventureWorksDataSet para Gerenciador de Soluções e abre a Class1.cs ou o arquivo de código do Class1.vb.
Em Gerenciador de Soluções, clique com o botão direito do mouse de Class1.cs ou Class1.vbe clique em Excluir.Você não precisa esse arquivo para esta explicação passo a passo.
Definir um dataset no projeto de Biblioteca de Classes
Definir um dataset tipado que contém dados do banco de dados AdventureWorksLT para SQL Servidor 2005.Posteriormente neste passo-a-passo, você fará referência isso DataSet de um projeto de pasta de trabalho do Excel e um projeto de Aplicativo do Console.
O dataset é um digitado dataset que representa os dados na tabela produtos de banco de dados AdventureWorksLT.Para obter mais informações sobre datasets tipados, consulte Datasets in Visual Studio Overview.
Para definir um dataset tipado no projeto de biblioteca de classes
Em Gerenciador de Soluções, clique no projeto de AdventureWorksDataSet.
No menu Data, clique em Add New Data Source.
O Data Source Configuration Wizard é aberto.
Clique em do banco de dados e clique em Avançar de .
Se você tiver uma conexão existente para o banco de dados AdventureWorksLT, escolha essa conexão e clique em Avançar de .
Caso contrário, clique em Novo conexãoe use o Adicionar Conexão caixa de diálogo para criar a Novo conexão.For more information, see Como: Criar conexões para SQL Servidor bancos de dados.
Na página Save the Connection String to the Application Configuration File , clique em Next.
Na página Choose Your Banco de Dados Objects, Expandirir Tabelas e Selecionar de produto (SalesLT) .
Clique em Finish.
AdventureWorksLTDataSet. Arquivo XSD é adicionado ao projeto AdventureWorksDataSet.Este arquivo define os seguintes itens:
Um conjunto de dados tipado chamado AdventureWorksLTDataSet.Isso DataSet representa o conteúdo da tabela Produtos no banco de dados AdventureWorksLT.
Um TableAdapter denominado ProductTableAdapter.Este TableAdapter pode ser usado para ler e gravar dados na AdventureWorksLTDataSet.For more information, see Visão geral do TableAdapter.
Você irá 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 em Compilação.
Verifique se que o projeto compila sem erros.
Criando um projeto de pasta de trabalho do Excel
Criar um projeto de pasta de trabalho do Excel para a interface para os dados.Posteriormente nesta explicação passo a passo, você criará um ListObject que exibe os dados, e você irá adicionar uma instância do dataset para o cache de dados na pasta de trabalho.
Para criar o projeto de pasta de trabalho do Excel
Em dGerenciador de Soluções, clique com o botão direito do mouse AdventureWorksDataSet solução, aponte para Adicionare clique em Novo projeto.
No painel de A Projeto Types, Expandirir Visual C# ou do Visual Basic e em seguida, Expandirir Office.
Selecionar a pasta de 2007 se você estiver usando o Excel 2007 no computador de desenvolvimento, ou Selecionar a pasta de 2003 se você estiver usando o Excel 2003.
No painel modelos, Selecionar Da pasta de trabalho do Excel.
Na caixa Nome, tipo AdventureWorksReport.Não modifique o local.
Clique em OK.
Abre o Visual Studio Tools para Office Projeto Assistente.
Certifique-se de que criar um documento novo Está Selecionadoda e clique em OK .
Visual Studio abre a pasta de trabalho AdventureWorksReport no designer e o adiciona o projeto de AdventureWorksReport para Gerenciador de Soluções.
Adicionar o DataSet a fontes de dados em projeto de pasta de trabalho do Excel
Antes de você poder exibir o conjunto de dados na pasta de trabalho do Excel, primeiro você deve adicionar o dataset a fontes de dados do projeto de pasta de trabalho do Excel.
Para adicionar o dataset para as fontes de dados do projeto de pasta de trabalho do Excel
Em Gerenciador de Soluções, clique Duplo Sheet1.cs ou Sheet1.vb no projeto 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 Objetoe clique em Avançar de .
No Selecionar o objeto que deseja Ligar à página, clique em Adicionar Referência.
Na guia Projects, clique em AdventureWorksDataSet e clique em OK de .
No namespace AdventureWorksDataSet de AdventureWorksDataSet assembly, clique em AdventureWorksLTDataSet e clique em Concluir.
A janela de fontes de dados é aberta, e AdventureWorksLTDataSet é adicionado à lista de fontes de dados.
Criando um ListObject que É Ligado a uma instância do DataSet
Para exibir o conjunto de dados na pasta de trabalho, Criar um ListObject que será Ligado a uma instância do dataset.Para obter mais informações sobre controles de ligação a dados, consulte Vinculando dados a controles.
Para criar um ListObject que será Ligado a uma instância do dataset
Na janela Data Sources, Expandirir o nó de AdventureWorksLTDataSet em AdventureWorksDataSet.
Selecionar o Produto nó, clique na seta suspensa que aparece e Selecionar ListObject Soltar suspensa.
Se o Soltar - para baixo Seta não aparece, confirme que a pasta de trabalho estiver aberta no designer.
Arraste a tabela de De produtos de para a célula A1.
Um Controlarar de ListObject chamado productListObject é criado na planilha, começando na célula A1.Ao mesmo tempo, um objeto de dataset chamado adventureWorksLTDataSet e um BindingSource chamado productBindingSource são adicionados ao projeto.O ListObject está Ligado a BindingSource, que por sua vez é Ligados ao objeto dataset.
Adicionar o DataSet ao cache de dados
Para habilitar código fora do projeto pasta de trabalho do Excel para acessar o dataset 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 Modelo de dados no nível de documento personalizações e Cache de dados.
Para adicionar o dataset para o cache de dados
No designer, clique em AdventureWorksLTDataSet.
Na janela Propriedades , defina Modificadores de propriedade de a Público.
Defina o CacheInDocument propriedade como Verdadeiro.
Ponto de Verificação
ComCompilação e executar o projeto de pasta de trabalho do Excel para garantir que compila e executa sem erros.
ParComCompilação e executar o projeto
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de AdventureWorksReport, escolha Debuge, em seguida, clique em Iniciar Novo instância.
O projeto é criado e a pasta de trabalho abre no Excel.O ListObject na Planilha1 está vazio, porque o objeto adventureWorksLTDataSet no cache de Sem Dadosdos possui dados ainda.Na Avançar seção, você usará um Aplicativo do Console para preencher o objeto de adventureWorksLTDataSet com dados.
Excel Fechar.Não Salvar as alterações.
Criando um projeto de Aplicativo do Console
Criar um projeto de Aplicativo do Console para usar para inserir dados no dataset em cache na pasta de trabalho.
Para criar o projeto de Aplicativo do Console
Em dGerenciador de Soluções, clique com o botão direito do mouse AdventureWorksDataSet solução, aponte para Adicionare clique em Novo projeto.
No painel de A Projeto Types, Expandirir Visual C# ou Visual Basice clique em Windows.
No painel modelos, Selecionar do Aplicativo do Console.
Na caixa Nome, tipo DataWriter.Não modifique o local.
Clique em OK.
Visual Studio adiciona o projeto de DataWriter para Gerenciador de Soluções e abre a Programa.cs ou o arquivo de código do Module1.vb.
Adicionando dados para o dataset em cache, usando o Aplicativo do Console
Use a classe ServerDocument no Aplicativo do Console para preencher o dataset em cache na pasta de trabalho com dados.
Para adicionar dados para o dataset em cache
Em Gerenciador de Soluções, clique com o botão direito do mouse o projeto de DataWriter e clique em Adicionar Referência.
Na guia .NET, Selecionar um dos seguintes assemblies:
Se você estiver usando o Excel 2007 no computador de desenvolvimento, Selecionar Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.
Se você estiver usando o Excel 2003, Selecionar Microsoft.VisualStudio.Tools.Applications.Tempo de execução.
Esses assemblies Definirm diferentes versões da classe ServerDocument que são usados por projetos para o 2007 Microsoft Office Sistema e o Microsoft Office 2003.For more information, see Gerenciando documentos em um servidor usando a classe do ServerDocument.
Clique em OK.
Em Gerenciador de Soluções, clique com o botão direito do mouse o projeto de DataWriter e clique em Adicionar Referência.
Na guia Projects, Selecionar AdventureWorksDataSete, clique em OK de .
Abrir o arquivo Programa.cs ou Module1.vb no editor de códigos.
Adicionar o seguinte using (para C#) ou declaração de Imports (para o Visual Basic) para o início do arquivo 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 do AdventureWorksLTDataSet e ProductTableAdapter tipos definidos no projeto AdventureWorksDataSet.
O caminho para a pasta de trabalho AdventureWorksReport na pasta de compilação do projeto AdventureWorksReport.
Um objeto de ServerDocument usar para acessar o cache de dados na pasta de trabalho.
Observação: O código a seguir presume que você estiver usando um Excel 2007 pasta de trabalho que tenha a.xlsx file extensão.Se a pasta de trabalho em seu projeto tiver um diferente file extensão, 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 para o método de Main, após o código adicionado na etapa anterior.Esse código executa as seguintes tarefas:
Ele preenche o objeto de dataset digitado usando o adaptador de tabela.
Ele usa a propriedade CachedData da classe ServerDocument para acessar o dataset em cache na pasta de trabalho.
Ele usa o método de SerializeDataInstance para preencher o dataset em cache com dados de o local digitado dataset.
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 Depurare, em seguida, clique em Iniciar Novo instância.
O projeto é criado, e o Aplicativo do Console exibe várias mensagens de status quando o dataset local é preenchido e quando o aplicativo salva os dados para o dataset em cache na pasta de trabalho.Pressionarionar ENTER para fechar o aplicativo.
Testando a pasta de trabalho
Quando você Abrir a pasta de trabalho, a ListObject agora exibe dados que foi adicionados ao dataset em cache usando o Aplicativo do Console.
Para testar a pasta de trabalho
Feche a pasta de trabalho AdventureWorksReport no designer do Visual Studio, se ainda estiver Abrir.
No Windows Explorer, Abrir a pasta de trabalho AdventureWorksReport, que está na pasta compilação do projeto AdventureWorksReport.Por padrão, a pasta de compilação é em um dos seguintes locais:
%UserProfile%\My Documents\AdventureWorksReport\bin\Depurar (para o Windows XP e anterior)
%UserProfile%\Documents\AdventureWorksReport\bin\Depurar (para Windows Vista)
Verifique se o ListObject está preenchida com dados após abrir a pasta de trabalho.
Próximas etapas
Você pode saber mais sobre como trabalhar com dados em cache destes tópicos:
Alterar os dados em um dataset em cache sem iniciar o Excel.For more information, see Demonstra Passo a passo: Alterar dados em cache em uma pasta de trabalho em um servidor.
Inserir dados o cache de dados de uma palavra documento como uma matriz de bytes na memória, em vez de salvos em disco rígido.For more information, see Como: Inserir dados em documentos sem gravação em disco.
Consulte também
Tarefas
Como: Inserir dados em uma pasta de trabalho em um servidor
Demonstra Passo a passo: Alterar dados em cache em uma pasta de trabalho em um servidor
Como: Inserir dados em documentos sem gravação em disco