Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
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.
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)
Na célula F3, escreva a seguinte fórmula:
=SUM(F$2:F2)
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 .
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 .
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 .
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 .
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 .
No menu Ferramentas , clique em Opções . No separador Ver , desmarque a caixa de verificação linhas de grelha e clique em OK .
Seleccione a linha 2. No menu janela , clique em Fixar painéis .
Seleccione a célula A1.
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.
Saia do Excel.
Abra Orders.xsl em qualquer editor de texto, tal como o bloco de notas.
Insira o seguinte entre o <? versão xml = "1.0"? > tag e a tag <workbook>:
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
No Visual Basic, crie um EXE padrão novo projecto.
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 .
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.
Prima F5 para executar o programa.
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
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.
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 the Xmlsprd.exe package now.
(http://download.microsoft.com/download/excel2002/other/1.0/win98me/en-us/xmlsprd.exe)
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:
119591
(http://support.microsoft.com/kb/119591/
)
Como 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.
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:
266263
(http://support.microsoft.com/kb/266263/
)
Erro: Word 2000 e Excel 2000 visualizar ASP origem quando utiliza o tipo de MIME a sequência de dados
199841
(http://support.microsoft.com/kb/199841/
)
Como apresentar ASP resultados utilizando o Excel no IE com tipos de MIME
271572
(http://support.microsoft.com/kb/271572/
)
Como formatar um livro do Excel durante a transmissão em sequência conteúdo MIME
307021
(http://support.microsoft.com/kb/307021/
)
Como a transferência de dados XML para o Microsoft Excel 2002 utilizando o Visual Basic .NET
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
(http://support.microsoft.com/kb/285891/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.