Použití jazyka Visual Basic nebo ASP k vytvoření formátu tabulky XML pro aplikaci Excel 2002 a Excel 2003

Překlady článku Překlady článku
ID článku: 285891 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Aplikace Microsoft Excel 2002 a Microsoft Office Excel 2003 podporuje formát XML, které mohou jak načíst a uložit sešity (nebo tabulky XML). Použitím tohoto formátu tabulky XML, můžete vytvořit multi-sheet, formátované sešity aplikace Excel bez použití automatizace. Tento přístup může být žádoucí, pokud potřebujete vytvořit aplikace Excel sešit, ale není možné k automatizaci aplikace Excel (například na webovém serveru nebo ze služby) nebo Excel není nainstalována v systému, kde je spuštěna v kódu.

Tento článek ukazuje, jak můžete vytvořit šablonu XML, které při použití transformace Extensible Stylesheet Language (XSL), generuje formátovaný sešitu, který lze otevřít přímo v aplikaci Excel. Kód XML transformaci je prokázána Active Server Pages (ASP) a Visual Basic. S ohledem ukázka kódu jazyka Visual Basic, data tabulky tabulkového kalkulátoru generováno výhradně s XML/XSL; automatizace minimální se používá k otevření výsledky v aplikaci Excel.

Poznámka: Vzorek, popsané v tomto článku je k dispozici pro stažení; pokyny ke stažení, naleznete v části stažení na konci tohoto článku.

Další informace

Vytvořit šablonu XML pro sešit

  1. Vytvoření nové složky, C:\ExcelXML.
  2. V aplikaci Excel spusťte nový sešit. Přidat následující data k A1:F2 buňky sešitu v uvedených buňkách. Buňku F2 by měla být zadána jako vzorec.
    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. V buňce F3 zadejte následující vzorec:
    =SUM(F$2:F2)
  4. Vyberte buňky A1:F1. V nabídce Formát klepněte na příkaz buňky. Použije tučné písmo, dolní ohraničení a pro stínování plnou barvou. Klepněte na tlačítko OK.
  5. Vyberte sloupce, V nabídce Formát A:F., přejděte na příkaz sloupec a klepněte na příkaz Šířka. Zadejte 15 nových šířku sloupce a potom klepněte na tlačítko OK. Sloupce A:F vybraný a v nabídce Formát klepněte na příkaz buňky. Na kartě Zarovnání vyberte Centrum ze seznamu vodorovné zarovnání a potom klepněte na tlačítko OK.
  6. Vyberte sloupec E. V nabídce Formát klepněte na příkaz buňky. Na kartě čísla klepněte na položku procenta a určit, 0 desetinná místa a klepněte na tlačítko OK.
  7. Vyberte sloupec F. V nabídce Formát klepněte na příkaz buňky. Na kartě čísla klepněte na tlačítko účtování a potom klepněte na tlačítko OK.
  8. Vyberte buňky A3:F3. V nabídce Formát klepněte na příkaz Výška řádku, zadejte 25 a potom klepněte na tlačítko OK. S A3:F3 vybraný a v nabídce Formát klepněte na příkaz buňky. Použít horní ohraničení na buňky a potom klepněte na tlačítko OK.
  9. V nabídce Nástroje klepněte na příkaz Možnosti. Na kartě zobrazení zrušte zaškrtnutí políčka mřížky a klepněte na tlačítko OK.
  10. Vyberte řádek 2. V nabídce okno klepněte na příkaz Ukotvit příčky.
  11. Vyberte buňky A1.
  12. V nabídce soubor klepněte na příkaz Uložit jako. Přejděte do složky C:\ExcelXML, kterou jste vytvořili a uložte sešit jako "Orders.xsl" ve formátu Tabulka XML.

    Poznámka: do pole Název souboru v dialogovém okně Uložit jako, uzavřete název souboru v uvozovkách, aby příponou .xml nebyla přidána k názvu souboru.
  13. Ukončení aplikace Excel.
  14. Otevřete Orders.xsl v libovolné textového editoru, jako je například Poznámkový blok.
  15. Vložte následující mezi <? xml version = "1.0"? > značku a značku <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. Na konci velmi Orders.xsl, přidat následující dva řádky:
    </xsl:template>
    </xsl:stylesheet>
    					
  17. Vyhledejte následující sadu značek v Orders.xsl (tuto sadu značek představuje A2:F2 buňky v listu)
       <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>
    					
    a nahraďte následující kód 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. Uložte změny do Orders.xsl a soubor zavřete.

Pomocí programu Visual Basic převést sadu záznamů ADO trvalé XML do formátu tabulky XML

  1. V jazyce Visual Basic, vytvořte nový standardní EXE projektu.
  2. V nabídce projekt klepněte na odkazy. Vyberte typ knihovny pro Microsoft ActiveX Data Object 2.5 nebo vyšší) a Microsoft XML 3.0.
  3. Přidejte CommandButton Form1 a přidejte následující kód klepnutím na tlačítko událostí:
        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
    					
    Poznámka: Pokud potřeby upravte připojení tak, aby obsahoval správné instalace cestu k vzorku Northwind aplikace Access řetězec (Const sConn) databáze.
  4. Chcete-li spustit program stisknutím klávesy F5.
  5. Klepněte na tlačítko na Form1. Data z Podrobnosti objednávky tabulky v databázi Northwind se zobrazí v vytvořenou šablonu sešitu aplikace Excel.
Vzorek generuje tabulky XML a automatizuje Excel metodou Otevřítsešity kolekce Otevřít XML jako nový sešit. Jako alternativní přístup můžete vložit přímo XML do existujícího listu na určitou buňku. Pro ilustraci, nahraďte kód obsažený mezi hvězdičky s následujícím:
        '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
				
po provedení této změny, spusťte program znovu. Všimněte si, že tuto dobu, data tabulky XML budou vložena do nového sešitu počátkem v buňce B2 prvním listu. Formáty data buňky a jsou použité v oblasti; však použití tohoto přístupu, nastavení specifické pro řádky, sloupce, listu a sešitu se nepřenesou.

Převést sadu záznamů ADO trvalé XML do formátu tabulky XML pomocí prostředí ASP

  1. Do programu Poznámkový blok vložte následující kód. Uložit kód ExcelXML.asp ve virtuální kořenové složce vašeho webového serveru. Poznámka výchozí složka virtuálního kořenového adresáře je 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
    
    %>
    					
    Poznámka: Pokud je nutné, upravte připojení tak, aby obsahoval správné instalace cestu k vzorku Northwind aplikace Access řetězec (Const sConn) databáze.

  2. Spusťte aplikaci Internet Explorer a přejděte do http:// YourWebServer / ExcelXML.asp, kde YourWebServer je název webového serveru. Data z Podrobnosti objednávky tabulky v databázi Northwind se zobrazí v vytvořenou šablonu sešitu aplikace Excel.

Další poznámky

Následující funkce aplikace Excel nelze zachovat s XML formátu Tabulka:
  • Grafy
  • Objekty OLE
  • Kreslení tvarů nebo automatických tvarů
  • Projekty v jazyce VBA
  • Skupina a přehled

Stahování

XMLSpread.exe obsahuje šablony stylů XML, projektu aplikace Visual Basic a skriptu ASP popsané v tomto článku. Následující soubor je k dispozici ke stažení z webu služby Stažení softwaru:
Zmenšit tento obrázekZvětšit tento obrázek
Download
Download the Xmlsprd.exe package now.Datum vydání: Březen 27, 2001

Další informace o tom, jak stahovat soubory podpory společnosti Microsoft naleznete následující článku znalostní báze Microsoft Knowledge Base:
119591Jak získat soubory podpory společnosti Microsoft ze serverů služeb online
Microsoft je prohledáván soubor byl zkontrolován na výskyt virů. Společnost Microsoft použila ke aktuální antivirový software, která byla k dispozici na datum, kdy byla zaúčtována v souboru. Soubor je uložen na zabezpečených serverech neumožňujících neoprávněné změny souboru.

Odkazy

Další informace o ukládání ve formátu XML sady záznamů ADO formátovat, naleznete na následujícím webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms681538.aspx
Další informace o streamování obsahu MIME sady Microsoft Office aplikace, získáte v následujícím článku článcích báze Microsoft Knowledge Base:
266263Chyba: Aplikace Word 2000 a Excel 2000 zobrazit zdroj ASP při použití typu MIME proudu dat
199841Jak zobrazit ASP výsledků pomocí typů MIME aplikace Excel v aplikaci Internet Explorer
271572Formátování sešitu aplikace Excel při streamování obsahu MIME
307021Jak přenést XML data do aplikace Microsoft Excel 2002 pomocí jazyka Visual Basic .NET

Vlastnosti

ID článku: 285891 - Poslední aktualizace: 19. března 2007 - Revize: 7.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
  • Microsoft Visual Basic 6.0 Professional Edition
Klíčová slova: 
kbmt kbdownload kbhowto KB285891 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:285891

Dejte nám zpětnou vazbu

 

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