Excel 2002 ve Excel 2003, XML elektronik tablo oluşturmak için Visual Basic'in veya bir ASP kullanma

Makale çevirileri Makale çevirileri
Makale numarası: 285891 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Microsoft Excel 2002 ve Microsoft Office Excel 2003, bunlar hem yüklenemedi ve kaydedebilirsiniz (veya XML elektronik tabloları) çalışma kitaplarını XML biçimini destekler. Bu XML Elektronik Tablo biçimini kullanarak, multi-sheet, oluşturabileceğiniz Automation'ı kullanmadan, Excel çalışma kitaplarına biçimlendirilmiş. Bir Excel oluşturmak istediğinizde bu yaklaşım istenebilir çalışma kitabında, ancak Excel otomatikleştirmek için uygun değil (gibi bir Web sunucusunda veya bir hizmetten) veya Excel'in kodunuzu çalıştırdığı sistemde yüklü değil.

Bu makalede, nasıl bir XML şablonu, Genişletilebilir Stil Sayfası Dili (XSL) dönüştürme ile kullanıldığında oluşturabileceğinizi göstermektedir, doğrudan Excel'de açılabilir biçimlendirilmiş bir çalışma kitabı oluşturur. XML dönüşüm Active Server Pages (ASP) ve Visual Basic için gösterilmiştir. Ile ilgili olarak Visual Basic kod örneği, elektronik tablo verilerini, yalnızca XML/XSL ile oluşturulur; en az bir Otomasyon sonuçları Excel'de açmak için kullanılır.

Not Bu makalede açıklanan örnek kullanılabilir karşıdan yükleme; karşıdan yükleme yönergeleri için bu makalenin sonunda yükleme bölümüne bakın.

Daha fazla bilgi

Çalışma kitabında XML şablonu oluşturma

  1. C:\ExcelXML yeni bir klasör oluşturun.
  2. Excel'de, yeni bir çalışma kitabı başlatın. Aşağıdaki verileri, belirtilen hücreleri çalışma kitabındaki hücreleri A1:F2 ekleyin. Hücre F2 bir formülü olarak girilmelidir.
    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. F3 hücresine aşağıdaki formülü yazın:
    =sum(f$2:f2)
  4. Hücreleri A1:F1 seçin. Biçim menüsünden Hücreler ' i tıklatın. Kalın yazı tipi, alt kenarlık ve hücre gölgelendirme için düz bir renk uygulanır. Tamam ' ı tıklatın.
  5. A:F. Biçim menüsünden Sütunlar'ı seçin, sütun ' u işaret edin ve sonra da Genişlik ' i tıklatın. 15 Yeni sütun genişliğini yazın ve Tamam ' ı tıklatın. Sütunları A:F, Biçim menüsünden Seçili Hücreler ' i tıklatın. Hizalama sekmesinde, yatay hizalamayı listeden Center ' ı tıklatın ve sonra Tamam ' ı tıklatın.
  6. E sütunu seçin. Biçim menüsünden Hücreler ' i tıklatın. Sayı sekmesinde yüzde ' yi tıklatın, 0 ondalık belirtin ve sonra Tamam ' ı tıklatın.
  7. F sütunu seçin. Biçim menüsünden Hücreler ' i tıklatın. Sayı sekmesindeki Hesap ' ı tıklatın ve sonra Tamam ' ı tıklatın.
  8. Hücreleri A3:F3 seçin. Biçim menüsünden, Satır yüksekliği ' ı tıklatın, 25 yazın ve Tamam ' ı tıklatın. A3:F3 hala seçili, Biçim menüsünden Hücreler ' i tıklatın. Üst Kenarlık hücrelere ve Tamam ' ı tıklatın.
  9. Araçlar menüsünden Seçenekler ' i tıklatın. Görünüm sekmesinde <a0>kılavuz çizgileri</a0> onay kutusunu temizleyin ve Tamam ' ı tıklatın.
  10. Satır 2'ı seçin. Pencere menüsünden Bölmeleri Dondur'u tıklatın.
  11. A1 hücresini seçin.
  12. Dosya menüsünden farklı Kaydet ' i tıklatın. Oluşturduğunuz C:\ExcelXML klasöre göz atın ve çalışma kitabı "Orders.xsl" XML elektronik tablo biçiminde kaydedin.

    Not: .xml uzantısı, dosya adına eklenir böylece dosya adı kutusuna Kaydet iletişim kutusunda dosya adı çift tırnak içine alın.
  13. Excel'den çıkın.
  14. Orders.xsl, Not Defteri gibi herhangi bir metin düzenleyicisinde açın.
  15. Aşağıdaki arasında ekleme <? xml sürüm = "1.0"? > etiketi ve <workbook>etiketi:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <xsl:pi name="xml">version="1.0"</xsl:pi>
    					
  16. Aşağıdaki iki satırı Orders.xsl çok sonunda, append:
    </xsl:template>
    </xsl:stylesheet>
    					
  17. Aşağıdaki etiketleri kümesini (Bu kümesi etiketleri çalışma sayfasındaki hücreleri A2:F2 gösterir) Orders.xsl bulun
       <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>
    					
    ve aşağıdaki XSL kodla değiştirin:
    <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. Orders.xsl için değişikliklerinizi kaydedip dosyayı kapatın.

Bir XML devam eden bir ADO kayıt kümesini bir XML elektronik tabloya dönüştürmek için Visual Basic'i kullanın.

  1. Visual Basic'te, yeni bir standart exe DOSYASı oluşturma proje.
  2. Proje menüsünde Başvurular ' ı tıklatın. Tür kitaplıkları (Microsoft ActiveX veri nesnesi 2.5 veya sonraki) ve Microsoft XML 3. 0 ' ı seçin.
  3. Form1'e bir KomutDüğmesi ekleyin ve bu düğmenin tıklatma için aşağıdaki kodu ekleyin olay:
        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
    					
    Not gerektiği, bağlantıyı değiştirmek (sabit sConn) dize, Access Northwind örnek doğru yükleme yolunu içeren veritabanı.
  4. Programı çalıştırmak için F5 tuşuna basın.
  5. Form1 düğmesini tıklatın. Verileri siparişler ayrıntı Northwind veritabanındaki bir tabloyu oluşturduğunuz Excel çalışma kitabı şablonu görünür.
Örnek XML olarak yeni bir çalışma kitabını açmak için çalışma kitaplarını topluluğunun <a2></a2> yöntemini kullanarak Excel otomatikleştirir ve XML elektronik tablosu oluşturur. Diğer bir yaklaşım XML belirli bir hücreden varolan bir çalışma sayfasına doğrudan ekleyebilirsiniz. Göstermek için <a0></a0>, aşağıdaki yıldız işaretleri arasında yer alan kodunu değiştir:
        '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
				
bu değişikliği yaptıktan sonra programı yeniden çalıştırın. Bu kez, ilk çalışma sayfasının B2 hücresinden başlayarak yeni bir çalışma kitabına XML elektronik tablo verilerini yerleştirilmiş olduğunu unutmayın. Hücre veri ve biçimleri aralığa uygulanır; ancak, bu yaklaşım kullanarak satır, sütun, çalışma ve çalışma kitabı için özel ayarları taşınan değil.

Bir XML devam eden bir ADO kayıt kümesini bir XML elektronik tabloya dönüştürmek için ASP kullanma

  1. Aşağıdaki kodu Not Defteri'ne yapıştırın. Kod, Web sunucusu. Not varsayılan sanal kök klasörü sanal kök klasöründe ExcelXML.asp C:\inetpub\wwwroot olarak kaydedin.
    <%@ 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
    
    %>
    					
    Not gerektiği, bağlantıyı değiştirin (sabit sConn) dize, Access Northwind örnek doğru yükleme yolunu içeren veritabanı.

  2. ınternet Explorer'ı başlatın ve http:// YourWebServer için gözatın / ExcelXML.asp, burada YourWebServer Web sunucunuzun adıdır. Verileri siparişler ayrıntı Northwind veritabanındaki bir tabloyu oluşturduğunuz Excel çalışma kitabı şablonu görünür.

Ek notlar

Aşağıdaki Excel özellikleri, XML ile olamıyor elektronik tablo biçimi:
  • Grafikler
  • OLE nesneleri
  • Çizim şekilleri veya Otomatik Şekiller
  • VBA projeleri
  • Grup ve anahat

Yükle

XMLSpread.exe XML stil, Visual Basic projesinin ve bu makalede açıklanan ASP komut dosyası içerir. Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Bu resmi kapatBu resmi aç
Download
Download the Xmlsprd.exe package now.Yayım Tarihi: Mart 27, 2001

Microsoft Destek dosyalarını karşıdan yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Referanslar

ADO kayıt kümesi XML biçiminde kaydetme hakkında daha fazla bilgi için biçimlendirmek için aşağıdaki Microsoft Developer Network (MSDN) Web sitesine bakın:
http://msdn2.microsoft.com/en-us/library/ms681538.aspx
Microsoft Office MIME içeriği akış hakkında daha fazla bilgi için uygulamalar Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
266263Hata: Word 2000 ve Excel 2000 ASP kaynağını akış verileri için MIME türü kullanılırken görüntülemek
199841ASP sonuçları Excel kullanılarak IE'de MIME türleriyle nasıl görüntülenir
271572MIME İçeriği Akış Olarak Gönderilirken Excel Çalışma Kitabı Nasıl Biçimlendirilir
307021Nasıl yapılır: Visual Basic. NET'i kullanarak, XML verilerini Microsoft Excel 2002'ye aktarma

Özellikler

Makale numarası: 285891 - Last Review: 19 Mart 2007 Pazartesi - Gözden geçirme: 7.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
  • Microsoft Visual Basic 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbdownload kbhowto KB285891 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:285891

Geri Bildirim Ver

 

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