Você está offline; aguardando reconexão

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

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
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: TotalA2: 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:
DownloadDownload 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): 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
xmlsprd

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 285891 - Última Revisão: 03/19/2007 06:09:22 - Revisão: 7.4

Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Active Server Pages 4.0, Microsoft Visual Basic 6.0 Professional Edition

  • kbmt kbdownload kbhowto KB285891 KbMtpt
Comentários