Como utilizar o Visual Basic ou ASP para criar uma folha de cálculo XML para o Excel 2002 e Excel 2003

Traduções de Artigos Traduções de Artigos
Artigo: 285891 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Microsoft Excel 2002 e Microsoft Office Excel 2003 suportam o formato XML com o qual possam quer carregar e guardar livros (ou folhas de cálculo XML). Utilizando este formato de folha de cálculo XML, pode criar multi-sheet, formatadas livros para o Excel sem utilizar a automatização. Esta abordagem poderá ser desejável quando precisar de criar um Excel livro, mas não é possível automatizar o Excel (como, por exemplo, num servidor Web ou a partir de um serviço) ou Excel não está instalado no sistema onde o código é executado.

Este artigo mostra como pode criar um modelo XML que, quando utilizado com a transformação XSL (Extensible Stylesheet Language), gera um livro formatado que possa ser aberto directamente no Excel. O XML é demonstrada transformação para ASP (Active Server Pages) e do Visual Basic. No que diz respeito ao exemplo de código do Visual Basic, os dados de folha de cálculo são gerados apenas com XML/XSL; automatização mínimo é utilizada para abrir os resultados no Excel.

Nota O exemplo descrito neste artigo está disponível para transferência; obter instruções de transferência, consulte a secção de transferências no fim deste artigo.

Mais Informação

Criar modelo XML para o livro

  1. Crie uma nova pasta, C:\ExcelXML.
  2. No Excel, inicie um novo livro. Adicione os dados seguintes A1:F2 células do livro nas células indicado. Célula F2 devem ser introduzidos como uma fórmula.
    A1: Order ID    B1: Product ID   C1: Unit Price   D1: Quantity   E1: Discount  F1: Total
    A2: aaa         B2: 111          C2: 222          D2: 333        E2: 0         F2: =C2*D2*(1-E2)
  3. Na célula F3, escreva a seguinte fórmula:
    =SUM(F$2:F2)
  4. Seleccione células A1:F1. No menu Formatar , clique em ' células '. Aplicar um tipo de letra negrito, o limite inferior e uma cor sólida para sombreado da célula. Clique em OK .
  5. Seleccione colunas A:F. no menu Formatar , aponte para coluna e, em seguida, clique em largura . Escreva 15 para a nova largura da coluna e clique em OK . Com A:F colunas ainda seleccionada, no menu Formatar , clique em ' células '. No separador ' Alinhamento ', seleccione Centro na lista Alinhamento horizontal e, em seguida, clique em OK .
  6. Seleccione a coluna e. No menu Formatar , clique em ' células '. No separador número , clique em percentagem e especificar 0 casas decimais e, em seguida, clique em OK .
  7. Seleccionar coluna f. No menu Formatar , clique em ' células '. No separador número , clique em Gestão de contas e, em seguida, clique em OK .
  8. Seleccione células A3:F3. No menu Formatar , clique em Altura da linha , escreva 25 e, em seguida, clique em OK . Com A3:F3 ainda seleccionada, no menu Formatar , clique em ' células '. Aplicar um limite superior às células e, em seguida, clique em OK .
  9. No menu Ferramentas , clique em Opções . No separador Ver , desmarque a caixa de verificação linhas de grelha e clique em OK .
  10. Seleccione a linha 2. No menu janela , clique em Fixar painéis .
  11. Seleccione a célula A1.
  12. No menu ficheiro , clique em Guardar como . Navegue para a pasta C:\ExcelXML que criou e guarde o livro como "Orders.xsl" no formato de Folha de cálculo XML .

    Nota : na caixa de nome de ficheiro na caixa de diálogo Guardar como , coloque o nome entre aspas duplas de ficheiro para que uma extensão .XML não sejam adicionada a nome do ficheiro.
  13. Saia do Excel.
  14. Abra Orders.xsl em qualquer editor de texto, tal como o bloco de notas.
  15. Insira o seguinte entre o <? versão xml = "1.0"? > tag e a tag <workbook>:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <xsl:pi name="xml">version="1.0"</xsl:pi>
    					
  16. No fim da Orders.xsl muito, acrescentar as seguintes duas linhas:
    </xsl:template>
    </xsl:stylesheet>
    					
  17. Localize o seguinte conjunto de códigos em Orders.xsl (este conjunto de códigos representa A2:F2 células na folha de cálculo)
       <Row ss:Height="14.25">
        <Cell><Data ss:Type="String">aaa</Data></Cell>
        <Cell><Data ss:Type="Number">111</Data></Cell>
        <Cell><Data ss:Type="Number">222</Data></Cell>
        <Cell><Data ss:Type="Number">333</Data></Cell>
        <Cell><Data ss:Type="Number">0</Data></Cell>
        <Cell ss:Formula="=RC[-3]*RC[-2]*1*(1-RC[-1])"><Data ss:Type="Number">73926</Data></Cell>
       </Row>
    					
    e substitua-o com o seguinte código XSL:
    <xsl:for-each select="xml/rs:data/z:row">
       <Row ss:AutoFitHeight="0" ss:Height="13.5">
        <Cell><Data ss:Type="String"><xsl:value-of select="@OrderID"/></Data></Cell>
        <Cell><Data ss:Type="Number"><xsl:value-of select="@ProductID"/></Data></Cell>
        <Cell><Data ss:Type="Number"><xsl:value-of select="@UnitPrice"/></Data></Cell>
        <Cell><Data ss:Type="Number"><xsl:value-of select="@Quantity"/></Data></Cell>
        <Cell><Data ss:Type="Number"><xsl:value-of select="@Discount"/></Data></Cell>
        <Cell ss:Formula="=RC[-3]*RC[-2]*(1-RC[-1])"><Data ss:Type="Number">0</Data></Cell>
       </Row>
    </xsl:for-each>
    					
  18. Guardar as alterações Orders.xsl e feche o ficheiro.

Utilize o Visual Basic para transformar um conjunto de registos persistentes XML ADO uma folha de cálculo XML

  1. No Visual Basic, crie um EXE padrão novo projecto.
  2. No menu projecto , clique em References . Seleccione as bibliotecas de tipos para o Microsoft ActiveX Data Object 2.5 (ou posteriores) e Microsoft XML 3.0 .
  3. Adicione um CommandButton ao Form1 e adicionar o seguinte código clique o botão evento:
        Const sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                      "C:\program files\microsoft office\office10\samples\Northwind.mdb"
        Const sOutXML = "C:\ExcelXML\Orders.xml"
        Const sXSL = "C:\ExcelXML\Orders.xsl"
        
        'Retrieve an ADO recordset of the Orders Detail table in Northwind.
        Dim nRecords As Long, nFields As Long
        Dim rs As New ADODB.Recordset
        rs.Open "SELECT * FROM [Order Details]", sConn, adOpenStatic, adLockOptimistic
            
        'Persist the recordset to a new DOMDocument and store the record count.
        Dim oXML As New DOMDocument
        rs.Save oXML, adPersistXML
        nRecords = rs.RecordCount
        nFields = rs.Fields.Count
        rs.Close
          
        'Load the XSL (the workbook template with XSL directives) into a DOMDocument.
        Dim oXSL As New DOMDocument
        oXSL.Load sXSL
        
        'Transform the XML using the style sheet.
        Dim oResults As New DOMDocument
        oXML.transformNodeToObject oXSL, oResults
        
        If oXSL.parseError.errorCode <> 0 Then
            MsgBox "Parse Error: " & oResults.parseError.reason
        Else
           'Modify the ss:ExpandedRowCount attribute for the <table> node to
           'indicate the correct number of rows (count of records + 1 row for
           'the header + 1 row for the total).
            Dim oTable As MSXML2.IXMLDOMElement
            Set oTable = oResults.selectSingleNode("Workbook/Worksheet/Table")
            oTable.setAttribute "ss:ExpandedRowCount", nRecords + 2
    
            '***************************************
            'Save the results to a file.
            Open sOutXML For Output As #1
            Print #1, oResults.xml
            Close #1
    
            'Open the XML in Excel.
            Dim oExcel As Object
            Set oExcel = CreateObject("Excel.Application")
            oExcel.Workbooks.Open sOutXML
            oExcel.Visible = True
            oExcel.UserControl = True
            '***************************************
        End If
    					
    NOTA: se for necessário, modifique a ligação cadeia (Const sConn) para que contenha o caminho de instalação correcto para o exemplo Adamastor do Access base de dados.
  4. Prima F5 para executar o programa.
  5. Clique no botão no Form1. Os dados de detalhe encomendas tabela na base de dados Adamastor aparece no modelo de livro do Excel que criou.
O exemplo gera a folha de cálculo XML e o Excel automatiza a utilizar o método Open da colecção de livros para abrir o XML como um livro novo. Como uma abordagem alternativa, pode inserir directamente o XML para uma folha de cálculo existente na célula específica. Para ilustrar, substitua o código contido entre asteriscos com o seguinte:
        'Display the data in a workbook starting at cell B2.
        Dim oExcel As Object, oBook As Object
        Set oExcel = CreateObject("Excel.Application")
        Set oBook = oExcel.Workbooks.Add
        oBook.Worksheets(1).Range("B2").Resize(nRecords + 2, nFields + 1).Value(11) = _
            oResults.xml 'Note: xlRangeValueXMLSpreadsheet=11
        oExcel.Visible = True
        oExcel.UserControl = True
				
depois de efectuar esta alteração, volte a executar o programa. Note que nesta altura, os dados de folha de cálculo XML são inseridos um livro novo, começando na célula B2 da primeira folha de cálculo. Formatos de dados de células e são aplicados ao intervalo; no entanto, utilizar esta abordagem, as definições específicas para as linhas, colunas, folha de cálculo e livro não são transpostas através de.

Utilizar o ASP para transformar um conjunto de registos persistentes XML ADO uma folha de cálculo XML

  1. Cole o seguinte código no bloco de notas. Guarde o código como ExcelXML.asp na pasta raiz virtual do seu servidor de Web. NOTA: A pasta de raiz virtual predefinido é C:\Inetpub\Wwwroot.
    <%@ Language="vbscript"%>
    
    <%
    
        Const sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\program files\microsoft office\office10\samples\Northwind.mdb"
        Const sXSL = "C:\ExcelXML\Orders.xsl"
        
        Response.Buffer = True
    
        'Retrieve an ADO recordset of the Orders Detail table in Northwind.
        Dim rs, nRecords
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open "SELECT * FROM [Order Details]", sConn, 3, 3
            
        'Persist the recordset to a new DOMDocument and store the record count.
        Dim oXML
        Set oXML = CreateObject("Microsoft.XMLDOM")
        rs.Save oXML, 1
        nRecords = rs.RecordCount
        rs.Close
          
        'Load the XSL (the workbook template with XSL directives) into a DOMDocument.
        Dim oXSL
        Set oXSL = CreateObject("Microsoft.XMLDOM")
        oXSL.Load sXSL
        
        'Transform the XML using the style sheet.
        Dim oResults
        Set oResults = CreateObject("Microsoft.XMLDOM")
        oXML.transformNodeToObject oXSL, oResults
        
        If oXSL.parseError.errorCode <> 0 Then
           Response.Write "Parse Error: " & oResults.parseError.reason
        Else
    
           'Modify the ss:ExpandedRowCount attribute for the <table> node in the XSL.
            Dim oTable
            Set oTable = oResults.selectSingleNode("Workbook/Worksheet/Table")
            oTable.setAttribute "ss:ExpandedRowCount", nRecords + 2
    
            'Return the resulting XML Spreadsheet for display in Excel.
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "ISO-8859-1"
            Response.Write oResults.XML
            Response.Flush
    
        End If
    
    %>
    					
    Nota se for necessário, modifique a ligação cadeia (Const sConn) para que contenha o caminho de instalação correcto para o exemplo Adamastor do Access base de dados.

  2. Inicie o Internet Explorer e navegue para http:// YourWebServer / ExcelXML.asp, onde YourWebServer é o nome do servidor Web. Os dados de detalhe encomendas tabela na base de dados Adamastor aparece no modelo de livro do Excel que criou.

Notas adicionais

As seguintes funcionalidades do Excel não podem ser persistente com o XML formato de folha de cálculo:
  • Gráficos
  • Objectos OLE
  • Formas de desenho ou formas automáticas
  • Projectos do VBA
  • Grupo e destaques

Transferir

XMLSpread.exe contém a folha de estilos XML, projecto do Visual Basic e script ASP descritos neste artigo. O ficheiro seguinte está disponível para transferência a partir do Centro de transferências da Microsoft:
Reduzir esta imagemExpandir esta imagem
Download
Download the Xmlsprd.exe package now.Data de edição: 27 de Março de 2001

Para obter mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
119591Como obter ficheiros de suporte da Microsoft a partir de serviços online
Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada o que ajuda a impedir alterações não autorizadas ao ficheiro.

Referências

Para obter mais informações sobre como guardar conjuntos de registos ADO em XML, formatar, consulte o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms681538.aspx
Para mais informações sobre transmissão em sequência conteúdo MIME para Microsoft Office aplicações, clique números de artigo seguinte seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
266263Erro: Word 2000 e Excel 2000 visualizar ASP origem quando utiliza o tipo de MIME a sequência de dados
199841Como apresentar ASP resultados utilizando o Excel no IE com tipos de MIME
271572Como formatar um livro do Excel durante a transmissão em sequência conteúdo MIME
307021Como a transferência de dados XML para o Microsoft Excel 2002 utilizando o Visual Basic .NET

Propriedades

Artigo: 285891 - Última revisão: 19 de março de 2007 - Revisão: 7.4
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
  • Microsoft Visual Basic 6.0 Professional Edition
Palavras-chave: 
kbmt kbdownload kbhowto KB285891 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 285891

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