Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để sử dụng Visual Basic hoặc ASP để tạo ra một bảng tính XML cho Excel 2003 và Excel 2002

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:285891
TÓM TẮT
Microsoft Excel 2002 và Microsoft Office Excel 2003 hỗ trợ một định dạng XML mà họ có thể cả hai tải và lưu sách bài tập (hoặc XML bảng tính). Bằng cách sử dụng này bảng tính XML định dạng, bạn có thể tạo ra multi-sheet, định dạng sách bài tập để Excel không sử dụng Tự động hóa. Cách tiếp cận này có thể được mong muốn khi bạn cần phải tạo một Excel bảng tính, nhưng nó là không khả thi để tự động hoá Excel (chẳng hạn như trên một máy chủ Web hoặc từ một dịch vụ) hoặc Excel không được cài đặt vào hệ thống nơi mã của bạn là chạy.

Bài viết này minh hoạ làm thế nào bạn có thể tạo ra một mẫu XML mà, khi được sử dụng với ngôn ngữ Stylesheet Extensible (XSL) chuyển đổi, tạo ra một bảng tính định dạng mà có thể được mở trực tiếp trong Excel. Các XML chuyển đổi được thể hiện cho cả Active Server Pages (ASP) và trực quan Cơ bản. Đối với mẫu mã Visual Basic, các dữ liệu bảng tính là được tạo ra chỉ duy nhất với XML/XSL; tự động hóa tối thiểu được sử dụng để mở các kết quả trong Excel.

Chú ý Mẫu vật được mô tả trong bài viết này có sẵn để tải về; để tải hướng dẫn, xem phần tải về ở phần cuối của bài viết này.
THÔNG TIN THÊM

Tạo XML cho bảng tính mẫu

  1. Tạo một thư mục mới, C:\ExcelXML.
  2. Trong Excel, bắt đầu một bảng tính mới. Thêm dữ liệu sau để các tế bào A1:F2 của bảng tính trong các tế bào chỉ ra. Tế bào F2 nên được nhập như một công thức.
    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. Trong tế bào F3, gõ công thức sau đây:
    =SUM(F$2:F2)
  4. Chọn các tế bào A1:F1. Trên các Định dạng trình đơn, nhấp vào Các tế bào. Áp dụng một phông chữ đậm, dưới giáp, và một màu vững chắc cho di động bóng. Nhấp vào Ok.
  5. Chọn cột A:F. trên các Định dạng trình đơn, điểm đến Cột và sau đó nhấp vào Chiều rộng. Loại 15 cho độ rộng cột mới và sau đó Nhấp vào Ok. Với cột A:F vẫn được chọn, trên các Định dạng trình đơn, nhấp vào Các tế bào. Trên các Sắp xếp tab, chọn Trung tâm từ danh sách ngang, và sau đó bấm Ok.
  6. Chọn cột E. Trên các Định dạng trình đơn, nhấp vào Các tế bào. Trên các Số tab, bấm vào Tỷ lệ phần trăm chỉ rõ nơi thập phân 0 và sau đó nhấp vào Ok.
  7. Chọn cột F. Trên các Định dạng trình đơn, nhấp vào Các tế bào. Trên các Số tab, bấm vào Kế toán và sau đó nhấp vào Ok.
  8. Chọn các tế bào A3:F3. Trên các Định dạng trình đơn, nhấp vào Chiều cao hàng, loại 25, và sau đó nhấp vào Ok. Với A3:F3 vẫn được chọn, trên các Định dạng trình đơn, nhấp vào Các tế bào. Áp dụng một biên giới hàng đầu để các tế bào, và sau đó nhấp vào Ok.
  9. Trên các Công cụ trình đơn, nhấp vào Tuỳ chọn. Trên các Xem tab, rõ ràng các Đường lưới hộp kiểm và bấm Ok.
  10. Chọn dòng 2. Trên các Cửa sổ trình đơn, nhấp vào Đóng băng ngăn.
  11. Chọn cell A1.
  12. Trên các Tệp trình đơn, nhấp vào Löu laøm. Duyệt đến thư mục C:\ExcelXML bạn tạo và lưu các bảng tính như là "Orders.xsl" trong các Bảng tính XML định dạng.

    Chú ý: Trong hộp tên tập tin trong các Löu laøm hộp thoại hộp, kèm theo tên tập tin trong hai dấu ngoặc kép để một .xml mở rộng sẽ không được thêm vào tên tập tin của bạn.
  13. Bỏ Excel.
  14. Mở Orders.xsl trong bất kỳ trình soạn thảo văn bản, chẳng hạn như Notepad.
  15. Chèn sau đây giữa các<?xml version="1.0"?>từ khóa và các <workbook> thẻ:</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. Vào cuối của Orders.xsl, nối thêm hai sau dòng:
    </xsl:template></xsl:stylesheet>					
  17. Xác định vị trí các thiết lập sau thẻ trong Orders.xsl (điều này đặt của Tags đại diện cho các tế bào A2:F2 trong bảng tính)
       <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>					
    và thay thế nó bằng mã XSL sau đây:
    <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. Lưu các thay đổi để Orders.xsl, và đóng các tập tin.

Sử dụng Visual Basic để biến đổi một XML tiếp tục tồn tại ADO recordset vào một bảng tính XML

  1. Trong Visual Basic, tạo ra một tiêu chuẩn mới EXE dự án.
  2. Trên các Dự án trình đơn, nhấp vào Tham khảo. Chọn các thư viện kiểu cho Microsoft ActiveX Data đối tượng 2,5 (hoặc sau này) và Microsoft XML 3,0.
  3. Thêm một CommandButton để Form1, và thêm mã sau đây để các nút bấm vào sự kiện:
        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					
    Chú ý Nếu cần thiết, sửa đổi kết nối chuỗi (Const sConn) vì vậy mà nó có đường dẫn cài đặt đúng đến mẫu truy cập Northwind cơ sở dữ liệu.
  4. Nhấn F5 để chạy chương trình.
  5. Nhấp vào Form1. Dữ liệu từ các chi tiết đơn đặt hàng bảng trong cơ sở dữ liệu Northwind xuất hiện trong Excel bảng tính mẫu mà bạn tạo.
Mẫu tạo XML bảng tính và tự động hóa Excel bằng cách sử dụng các Mở phương pháp của các Sách bài tập bộ sưu tập để mở XML như một bảng tính mới. Là một thay thế cách tiếp cận, bạn có thể trực tiếp đưa các XML vào một bảng tính hiện có tại một di động cụ thể. Để minh họa, thay thế mã được chứa giữa các dấu sao với những điều sau:
        '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				
Sau khi bạn thực hiện thay đổi này, chạy chương trình một lần nữa. Lưu ý rằng thời gian này, các dữ liệu XML bảng tính chèn vào một bảng tính mới bắt đầu từ tế bào B2 của bảng tính đầu tiên. Dữ liệu di động và các định dạng được áp dụng cho phạm vi; Tuy nhiên, sử dụng cách tiếp cận này, thiết lập cụ thể cho các hàng, cột, bảng tính, và bảng tính không phải được thực hơn.

Sử dụng ASP để biến đổi một XML tiếp tục tồn tại ADO recordset vào một bảng tính XML

  1. Dán đoạn mã sau vào Notepad. Lưu mã như ExcelXML.asp trong thư mục ảo gốc của máy chủ Web của bạn.Chú ý Thư mục ảo gốc mặc định là 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%>					
    Chú ý Nếu cần thiết, sửa đổi kết nối chuỗi (Const sConn) vì vậy mà nó có đường dẫn cài đặt đúng đến mẫu truy cập Northwind cơ sở dữ liệu.

  2. Khởi động Internet Explorer và duyệt đến http://YourWebServer/ ExcelXML.asp, nơi YourWebServer là tên của máy chủ Web của bạn. Dữ liệu từ các chi tiết đơn đặt hàng bảng trong cơ sở dữ liệu Northwind xuất hiện trong Excel bảng tính mẫu mà bạn tạo.

Chú ý bổ sung

Các tính năng Excel không thể được tiếp tục tồn tại với các XML Bảng tính định dạng:
  • Biểu đồ
  • OLE đối tượng
  • Vẽ hình dáng hoặc AutoShapes
  • Các dự án VBA
  • Nhóm và phác thảo

Tải về

XMLSpread.exe chứa XML stylesheet, Visual Basic dự án, và ASP kịch bản được mô tả trong bài viết này. Các tập tin sau đây có sẵn để tải về từ Microsoft Download Trung tâm:
Tải vềTải về Xmlsprd.exe gói bây giờ.Ngày phát hành: 27 tháng 3 năm 2001

Để biết thêm thông tin về cách tải xuống các tệp hỗ trợ Microsoft, hãy bấm số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
119591 Cách tải xuống các tệp hỗ trợ của Microsoft từ dịch vụ trực tuyến
Microsoft đã quét vi-rút cho tệp này. Microsoft đã sử dụng phần mềm dò tìm vi-rút mới nhất hiện có vào ngày tệp được đăng. Tệp này lưu trên máy chủ được tăng cường bảo mật giúp ngăn chặn mọi thay đổi trái phép đối với tệp.
THAM KHẢO
Cho biết thêm thông tin về việc tiết kiệm ADO recordsets trong XML định dạng, xem Web site sau của Microsoft Developer Network (MSDN): Để biết thêm thông tin về streaming MIME nội dung cho Microsoft Office các ứng dụng, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
266263LỖI: Word 2000 và Excel 2000 hiển thị ASP nguồn khi sử dụng kiểu MIME stream dữ liệu
199841 Làm thế nào để hiển thị ASP kết quả bằng cách sử dụng Excel trong IE với MIME types
271572 Làm thế nào để định dạng một bảng tính Excel trong khi streaming MIME nội dung
307021 Làm thế nào để chuyển dữ liệu XML để Microsoft Excel 2002 bằng cách sử dụng Visual Basic.NET
xmlsprd

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 285891 - Xem lại Lần cuối: 08/23/2011 11:13:00 - Bản sửa đổi: 2.0

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

  • kbdownload kbhowto kbmt KB285891 KbMtvi
Phản hồi