Cara menggunakan Visual Basic atau ASP untuk membuat spreadsheet XML untuk Excel 2002 dan Excel 2003

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 285891 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Microsoft Excel 2002 dan Microsoft Office Excel 2003 mendukung format XML yang mereka dapat keduanya beban dan menyimpan buku kerja (atau XML spreadsheet). Dengan menggunakan spreadsheet XML ini format, Anda dapat membuat multi-sheet, diformat buku kerja untuk Excel tanpa menggunakan Otomatisasi. Pendekatan ini mungkin diinginkan ketika Anda perlu membuat Excel buku kerja, tetapi yang tidak layak untuk mengotomatisasi Excel (seperti pada Web server atau dari layanan) atau Excel tidak diinstal pada sistem di mana kode Anda adalah menjalankan.

Artikel ini menggambarkan bagaimana Anda dapat membuat XML template yang, ketika digunakan dengan transformasi Extensible Stylesheet Language (XSL), menghasilkan buku kerja diformat yang dapat dibuka secara langsung dalam Excel. XML transformasi ini ditunjukkan untuk Active Server Pages (ASP) dan Visual Dasar. Berkenaan dengan sampel kode Visual Basic, spreadsheet data yang dihasilkan semata-mata dengan XML/XSL; minimal otomatisasi digunakan untuk membuka hasil dalam Excel.

Catatan Sampel yang dijelaskan dalam artikel ini tersedia untuk di-download; untuk download petunjuk, lihat bagian Download pada akhir artikel ini.

INFORMASI LEBIH LANJUT

Membuat XML template untuk buku kerja

  1. Membuat folder baru, C:\ExcelXML.
  2. Di Excel, mulai buku kerja baru. Tambahkan data berikut untuk sel-sel A1:F2 dari workbook dalam sel menunjukkan. Sel F2 harus dimasukkan sebagai formula.
    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. Dalam sel F3, ketik rumus berikut:
    =SUM(F$2:F2)
  4. Pilih sel-sel A1:F1. Pada Format menu, klik Sel. Berlaku font tebal, border bawah, dan warna solid untuk sel bayangan. Klik Oke.
  5. Pilih kolom A:F. pada Format menu, titik Kolom kemudian klik Lebar. Jenis 15 untuk lebar kolom baru dan kemudian Klik Oke. Dengan kolom A:F masih dipilih, di Format menu, klik Sel. Pada Kesejajaran tab, pilih Pusat dari daftar horisontal kesejajaran, dan kemudian klik Oke.
  6. Pilih kolom E. Pada Format menu, klik Sel. Pada Nomor tab, klik Persentase dan tentukan 0 desimal, dan kemudian klik Oke.
  7. Pilih kolom F. Pada Format menu, klik Sel. Pada Nomor tab, klik Akuntansi kemudian klik Oke.
  8. Pilih sel-sel A3:F3. Pada Format menu, klik Baris tinggi, jenis 25, lalu klik Oke. Dengan A3:F3 masih dipilih, di Format menu, klik Sel. Berlaku atas perbatasan untuk sel, dan kemudian klik Oke.
  9. Pada Alat menu, klik Opsi. Pada Lihat tab, jelas GridLines kotak centang dan klik Oke.
  10. Pilih baris 2. Pada Jendela menu, klik Membekukan panel.
  11. Pilih sel A1.
  12. Pada Berkas menu, klik Simpan sebagai. Browse ke folder C:\ExcelXML yang Anda buat, dan menyimpan buku kerja sebagai "Orders.xsl" di XML Spreadsheet format.

    Catatan: Dalam kotak nama file dalam Simpan sebagai kotak dialog, melampirkan nama file dalam tanda kutip ganda sehingga .xml ekstensi tidak ditambahkan ke nama file Anda.
  13. Keluar Excel.
  14. Buka Orders.xsl di editor teks apapun, seperti Notepad.
  15. Masukkan berikut antara<?xml version="1.0"?>Tag dan <workbook>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. Pada akhir Orders.xsl, menambahkan dua berikut garis:
    </xsl:template>
    </xsl:stylesheet>
    					
  17. Cari set berikut tag di Orders.xsl (ini set Tag mewakili A2:F2 sel pada lembar kerja)
       <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>
    					
    dan menggantinya dengan kode XSL berikut:
    <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. Menyimpan perubahan ke Orders.xsl, dan tutup file.

Menggunakan Visual Basic untuk mengubah recordset ADO bertahan XML ke XML spreadsheet

  1. Dalam Visual Basic, membuat baru Standard EXE proyek.
  2. Pada Project menu, klik Referensi. Pilih jenis perpustakaan untuk Objek Microsoft ActiveX Data 2,5 (atau lambat) dan Microsoft XML 3.0.
  3. Tambah CommandButton pada Form1, dan tambahkan kode berikut untuk kegiatan klik tombol:
        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
    					
    Catatan Jika diperlukan, memodifikasi koneksi string (Const sConn) jadi itu berisi instalasi benar jalan untuk sampel Northwind akses database.
  4. Tekan F5 untuk menjalankan program.
  5. Klik tombol pada Form1. Data dari Detail pesanan tabel dalam Northwind Database muncul dalam Excel workbook template bahwa Anda dibuat.
Sampel menghasilkan XML Spreadsheet dan mengotomatiskan Excel menggunakan Terbuka metode Buku kerja Koleksi untuk membuka XML sebagai buku kerja baru. Sebagai alternatif pendekatan, Anda dapat langsung memasukkan XML ke lembar kerja yang ada pada sel tertentu. Untuk mengilustrasikan, mengganti kode yang terdapat antara tanda bintang dengan berikut:
        '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
				
Setelah Anda membuat perubahan ini, menjalankan program lagi. Perhatikan bahwa saat ini, data XML Spreadsheet dimasukkan ke buku kerja baru mulai dari sel B2 lembar kerja-pertama. Sel data dan format yang diterapkan ke berbagai; Namun, menggunakan pendekatan ini, pengaturan khusus untuk baris, kolom, lembar kerja, dan buku kerja tidak dibawa.

Menggunakan ASP untuk mengubah recordset ADO bertahan XML ke XML spreadsheet

  1. Paste kode berikut ke Notepad. Simpan kode sebagai ExcelXML.asp di folder akar virtual server Web Anda.Catatan Folder akar virtual default adalah 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
    
    %>
    					
    Catatan Jika diperlukan, memodifikasi koneksi string (Const sConn) jadi itu berisi instalasi benar jalan untuk sampel Northwind akses database.

  2. Jalankan Internet Explorer dan browse ke http://YourWebServer/ ExcelXML.asp, di mana YourWebServer adalah nama server Web Anda. Data dari Detail pesanan tabel dalam Northwind Database muncul dalam Excel workbook template bahwa Anda dibuat.

Catatan tambahan

Fitur Excel berikut tidak dapat bertahan dengan XML Spreadsheet format:
  • Bagan
  • OLE objek
  • Menggambar bentuk atau AutoShapes
  • Proyek-proyek VBA
  • Kelompok dan garis besar

Unduh

XMLSpread.exe berisi XML stylesheet, Visual Basic proyek, dan ASP script yang dijelaskan dalam artikel ini. Berkas berikut tersedia untuk di-download dari Microsoft Download Pusat:
Perkecil gambar iniPerbesar gambar ini
Unduh
Download paket Xmlsprd.exe sekarang.Tanggal rilis: 27 Maret 2001

Untuk informasi selengkapnya tentang cara mengunduh berkas dukungan Microsoft, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
119591 Cara mendapatkan berkas dukungan Microsoft dari layanan daring
Microsoft telah memindai berkas ini dari virus. Microsoft menggunakan perangkat lunak pendeteksi virus terbaru yang tersedia pada tanggal saat berkas dikirimkan. Berkas tersebut disimpan di server aman, yang membantu mencegah segala perubahan tidak sah terhadap berkas.

REFERENSI

Untuk informasi lebih lanjut tentang tabungan ADO recordsets dalam XML format, lihat situs Web Microsoft Developer Network (MSDN) berikut:
http://msdn2.Microsoft.com/en-us/library/ms681538.aspx
Untuk informasi lebih lanjut tentang streaming konten MIME untuk Microsoft Office aplikasi, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
266263BUG: Word 2000 dan Excel 2000 menampilkan ASP sumber ketika menggunakan jenis MIME aliran data
199841 Bagaimana menampilkan ASP hasil menggunakan Excel di IE dengan tipe MIME
271572 Cara format buku kerja Excel sementara streaming konten MIME
307021 Bagaimana untuk mentransfer XML data ke Microsoft Excel 2002 dengan menggunakan Visual Basic.NET

Properti

ID Artikel: 285891 - Kajian Terakhir: 23 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
  • Microsoft Visual Basic 6.0 Professional Edition
Kata kunci: 
kbdownload kbhowto kbmt KB285891 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:285891

Berikan Masukan

 

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