Como transferir dados XML para o Microsoft Excel 2002 ou o Microsoft Excel 2003 usando translation from VPE for Csharp Visual

Traduções deste artigo Traduções deste artigo
ID do artigo: 307029 - Exibir os produtos aos quais esse artigo se aplica.
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 307021.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Excel 2002 apresenta funcionalidade para abrir arquivos no formato XML (Extensible Markup Language). Um arquivo XML que está bem formado pode ser aberto diretamente no Excel 2002 ou no Excel 2003 usando a interface do usuário ou o código.

Com o Microsoft Visual translation from VPE for Csharp .NET ou Microsoft Visual translation from VPE for Csharp 2005, você pode tirar uma disposição de sua escolha e aproveitar a funcionalidade XML do Excel para transferir dados diretamente para uma pasta de trabalho para apresentar os dados com formatação. Este artigo demonstra como realizar essa tarefa.

Gerar XML a partir de um DataSet para usar no Excel 2002 ou no Excel 2003

Esta seção ilustra como criar um objeto DataSet e exportar os dados que ela contém para um arquivo XML usando o método WriteXML . O arquivo XML que é gerado pode ser aberto diretamente no Excel. Para fins de ilustração, o objeto de DataSet é criado do banco de dados de exemplo Northwind do Microsoft Access usando o provedor de OLEDB do Jet. No entanto, o código semelhante funciona com qualquer objeto de DataSet que você criar com Visual translation from VPE for Csharp 2005 ou Visual translation from VPE for Csharp .NET.
  1. Inicie Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005. No menu arquivo , clique em novo e, em seguida, clique em Project . Selecione os tipos de projetos translation from VPE for Csharp Visual Windows Application . O Form1 é criado por padrão.
  2. No menu Exibir , selecione a caixa de ferramentas para exibir a caixa de ferramentas e adicionar um botão ao Form1.
  3. Clique duas vezes em Button1 . A janela de código para o formulário é exibida.
  4. Adicione as seguintes diretivas usando para a parte superior de Form1.cs:
    using System.Data.OleDb;
    using System.Xml;
    					
  5. Adicione a seguinte variável de membro particular à classe Form1:
    private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    	+ " C:\\Program Files\\Microsoft Office\\Office10\\Samples\\"
    	+ "Northwind.mdb;";
    					
    Observação talvez seja necessário modificar o caminho para o Northwind.mdb na seqüência de conexão para corresponder à sua instalação.
  6. Adicione o seguinte código ao manipulador Button1_Click :
    //Connect to the data source.
             OleDbConnection objConn = new OleDbConnection (strConn);
             try
             {
                objConn.Open();			
    
                //Fill a dataset with records from the Customers table.
                OleDbCommand objCmd = new OleDbCommand(
                   "Select CustomerID, CompanyName, ContactName, " 
                   + "Country, Phone from Customers", objConn);
                OleDbDataAdapter objAdapter = new OleDbDataAdapter();
                objAdapter.SelectCommand = objCmd;
                DataSet objDataset = new DataSet();
                objAdapter.Fill(objDataset);
    
    
                //Create the FileStream to write with.
                System.IO.FileStream fs = new System.IO.FileStream(
                   "C:\\Customers.xml", System.IO.FileMode.Create);
    
                //Create an XmlTextWriter for the FileStream.
                System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(
                   fs, System.Text.Encoding.Unicode);
    
                //Add processing instructions to the beginning of the XML file, one 
                //of which indicates a style sheet.
                xtw.WriteProcessingInstruction("xml", "version='1.0'");
                //xtw.WriteProcessingInstruction("xml-stylesheet", 
                  // "type='text/xsl' href='customers.xsl'");
    
                //Write the XML from the dataset to the file.
                objDataset.WriteXml(xtw);
                xtw.Close();
    
                //Close the database connection.
                objConn.Close();
             }
             catch (System.Exception ex)
             {
                MessageBox.Show(ex.Message);
             } 
    					
    Observação você deve alterar o código no Visual Studio 2005. Por padrão, Visual translation from VPE for Csharp adiciona um formulário para o projeto quando você cria um projeto Windows Forms. O formulário é denominado Form1. Os dois arquivos que representam o formulário são denominados Form1.cs e Form1.Designer.cs. Escrever o código no Form1.cs. O arquivo Form1.Designer.cs é onde o Windows Forms Designer escreve o código que implementa todas as ações que você executou arrastando e soltando controles da caixa de ferramentas.

    Para obter mais informações sobre o Windows Forms Designer no Visual translation from VPE for Csharp 2005, visite o seguinte Microsoft Developer site Network (MSDN):
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  7. Pressione F5 para compilar e executar o programa.
  8. Clique em Button1 para criar o arquivo XML, feche Formulário1 para finalizar o programa.
  9. Inicie o Excel 2002 ou o Excel 2003 e abra o arquivo de saída C:\Customers.xml.
  10. Após você ter observado como o XML tem sido analisado em linhas e colunas na nova pasta de trabalho, feche o arquivo e saia do Excel.

Formatar o XML usando uma folha de estilos

Esta etapa mostra como usar uma folha de estilos (XSL) para transformar como dados XML formatados e organizados em uma pasta de trabalho do Excel.
  1. Using any HTML editor or a text editor (such as Notepad.exe), save the following XSL as C:\Customers.xsl:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:template match="/">
        <HTML>
          <HEAD>
            <STYLE>   
              .HDR { background-color:bisque;font-weight:bold }
            </STYLE>
          </HEAD>
          <BODY>
            <TABLE>
              <COLGROUP WIDTH="100" ALIGN="CENTER"></COLGROUP>
              <COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP>
              <COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP>
              <COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP>
              <COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP>
              <TD CLASS="HDR">Customer ID</TD>
              <TD CLASS="HDR">Company</TD>
              <TD CLASS="HDR">Contact</TD>
              <TD CLASS="HDR">Country</TD>
              <TD CLASS="HDR">Phone</TD>
              <xsl:for-each select="NewDataSet/Table">
                <TR>
                  <TD><xsl:value-of select="CustomerID"/></TD>
                  <TD><xsl:value-of select="CompanyName"/></TD>
                  <TD><xsl:value-of select="ContactName"/></TD>
                  <TD><xsl:value-of select="Country"/></TD>
                  <TD><xsl:value-of select="Phone"/></TD>
                </TR>
              </xsl:for-each>
            </TABLE>
          </BODY>
        </HTML>
      </xsl:template>
    </xsl:stylesheet> 
    					
  2. Descomente a linha de código no manipulador de Button1_Click a seguir:
    xtw.WriteProcessingInstruction("xml-stylesheet", 
    	"type='text/xsl' href='customers.xsl'");
    					
    esta linha de código grava uma instrução de processamento para o arquivo XML que o Excel usa para localizar a folha de estilos (Customers.xsl).

  3. Pressione F5 para compilar e executar o programa.
  4. Clique em Button1 para criar o arquivo XML, feche Formulário1 para finalizar o programa.
  5. Inicie o Excel 2002 ou o Excel 2003 e abra o arquivo de saída C:\Customers.xml.
  6. Porque o Excel vê a instrução de processamento para a folha de estilos no XML, você recebe um prompt de caixa de diálogo quando você abrir o arquivo. Na caixa de diálogo Importar XML , selecione Abrir o arquivo com a seguinte folha de estilos aplicada . Na lista, selecione Customers.xsl e clique em OK . Observe que os dados XML são formatados e que as colunas têm sido organizadas de acordo com a folha de estilos.
  7. Feche o arquivo e feche o Excel.

Usar código para abrir o XML transformado

Até este ponto, você abriu o arquivo XML usando a interface do usuário no Excel. Esta seção demonstra como automatizar o Excel para abrir a pasta de trabalho por meio de programação. O exemplo a seguir ilustra como abrir o XML transformado sem a intervenção do usuário, primeiro transformar o XML no objeto DataSet para HTML.
  1. Adicione uma referência à biblioteca de objetos do Microsoft Excel 10.0 ou biblioteca de objetos do Microsoft Excel 11.0 . Para fazer isso, execute as seguintes etapas:
    1. No menu Project , clique em Add Reference .
    2. Na guia COM , localize Microsoft Excel 11.0 Object Library ou biblioteca de objetos do Microsoft Excel 10.0 e clique em Selecionar .
    3. Clique em OK na caixa de diálogo Add References para aceitar sua seleção. Se você receber uma solicitação para gerar wrappers para a biblioteca que você selecionou, clique em Sim .
  2. Adicione as seguintes diretivas usando para a parte superior de Form1.cs:
    using Excel = Microsoft.Office.Interop.Excel;
    					
  3. No projeto de .NET Visual C# 2005 ou translation from VPE for Csharp Visual, adicione outro botão ao Form1.
  4. Clique duas vezes em Button2 . Quando a janela de código para o formulário é exibido, adicione o código a seguir ao Button2_Click manipulador:
    //Connect to the data source.
    OleDbConnection objConn = new OleDbConnection (strConn);
    objConn.Open();			
    
    //Fill a dataset with records from the Customers table.
    OleDbCommand objCmd = new OleDbCommand(
    	"Select CustomerID, CompanyName, ContactName, " 
    	+ "Country, Phone from Customers", objConn);
    OleDbDataAdapter objAdapter = new OleDbDataAdapter();
    objAdapter.SelectCommand = objCmd;
    DataSet objDataset = new DataSet();
    objAdapter.Fill(objDataset);
    
    //Create the FileStream to write with.
    System.IO.FileStream fs = new System.IO.FileStream(
    	"C:\\Customers.htm", System.IO.FileMode.Create);
    
    //Create an XmlTextWriter for the FileStream.
    System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(
    	fs, System.Text.Encoding.Unicode);
    
    //Transform the XML using the stylesheet.
    XmlDataDocument xmlDoc = new XmlDataDocument(objDataset);
    System.Xml.Xsl.XslTransform xslTran = new System.Xml.Xsl.XslTransform();
    xslTran.Load("C:\\Customers.xsl");
    xslTran.Transform(xmlDoc, null, xtw);
    
    //Open the HTML file in Excel.
    Excel.Application oExcel = new Excel.Application();
    oExcel.Visible=true;
    oExcel.UserControl=true;
    Excel.Workbooks oBooks = oExcel.Workbooks;
    object oOpt = System.Reflection.Missing.Value; //for optional arguments
    oBooks.Open("c:\\customers.htm", oOpt, oOpt, oOpt, 
    	oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, 
    	oOpt, oOpt, oOpt);
    
    					
  5. Pressione F5 para compilar e executar o programa.
  6. Clique em Button2 para abrir o XML transformado no Excel.
Observação Enquanto o Excel 2002 e modelo de objeto do Excel 2003 expor um método de OpenXML permite que você abrir programaticamente um arquivo XML com folhas de estilos aplicadas, o exemplo anterior não chama esse método devido a um problema conhecido com o uso desse método de um cliente de automação. O método OpenXML funciona como esperado quando ele é chamado de uma macro do Excel; no entanto, quando esse método é chamado de um cliente de automação, o parâmetro de folha de estilos é ignorado. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
307230Erro: Parâmetro StyleSheets do método OpenXML ignoradas ao automatizar o Excel 2002

Referências

Para obter mais informações, consulte os seguintes artigos do Knowledge Base:
288215INFO: Microsoft Excel 2002 e XML
302084Como automatizar o Microsoft Excel do Visual .NET translation from VPE for Csharp
301216Como preencher um objeto DataSet de um banco de dados usando o Visual Basic .NET
306023Como transferir dados para uma pasta de trabalho do Excel usando o Visual translation from VPE for Csharp .NET

Propriedades

ID do artigo: 307029 - Última revisão: segunda-feira, 11 de dezembro de 2006 - Revisão: 7.5
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ADO.NET 1.0
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2003
Palavras-chave: 
kbmt kbhowtomaster KB307029 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307029

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com