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 ASP để xây dựng bảng tính XML cho hiển thị phía khách hàng

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:288130
TÓM TẮT
Bài viết này minh hoạ Microsoft Active Server Pages (ASP) kịch bản mà xây dựng một bảng tính định dạng XML bảng tính (XMLSS) bằng cách sử dụng các thành phần bảng tính văn phòng. Các XMLSS có thể là hiển thị phía máy khách trong một trong một số cách:
  • Trong thành phần bảng tính trên một trang Web
  • Trong Microsoft Excel được hiển thị tại-chỗ trong trình duyệt
  • Mở trực tiếp trong Microsoft Excel
THÔNG TIN THÊM
Sử dụng các thành phần bảng tính ở phía máy chủ mã xây dựng bảng tính cung cấp thêm khả năng mở rộng và hiệu suất tốt hơn so với sử dụng phía máy chủ tự động hóa của Microsoft Excel. Chúng tôi làm không recomment tự động hóa của Office applications, bao gồm cả Excel, trên máy chủ. Phương pháp này cần tránh khi lựa chọn thay thế khác để đạt được kết quả tương tự có sẵn cho bạn. XMLSS có thể vẫn tồn tại nhiều người trong số các tính năng phổ biến cho cả hai thành phần bảng tính và Microsoft Excel. Multi-Sheet sách bài tập, di động định dạng, Autofilter, di động công thức và re-calculation đại diện cho một số ít những tính năng. Các thành phần bảng tính có một mô hình đối tượng chặt chẽ phù hợp với mô hình đối tượng cho Microsoft Excel. Vì vậy, nếu bạn đã quen thuộc với các mô hình đối tượng Excel, bạn có thể dễ dàng xin một số hiện có Excel mã của bạn, với sửa đổi, để sử dụng với các thành phần bảng tính.

Mẫu sau đây chứng tỏ làm thế nào để tạo ra một bảng tính multi-sheet trong XMLSS bằng cách sử dụng các thành phần bảng tính với ASP. Mẫu cũng thảo luận về cách bạn có thể hiển thị kết quả XMLSS-phía khách hàng trên một trang Web hoặc trong Microsoft Excel.

ASP tập lệnh để xây dựng XMLSS bằng cách sử dụng các thành phần bảng tính

Tiết kiệm ASP sau như XMLSS.asp trong thư mục ảo gốc của máy chủ Web của bạn. Theo mặc định, thư mục gốc là C:\inetpub\wwwroot.
<% Language=VBScript %><%    Response.Buffer = True    Response.ContentType = "text/xml"    Dim NumOrders, NumProds, r    NumOrders = 300    NumProds = 10            Dim oSS    Dim oOrdersSheet    Dim oTotalsSheet    Dim oRange    Dim c        Set oSS = CreateObject("OWC10.Spreadsheet")    Set c = oSS.Constants    'Rename Sheet1 to "Orders", rename Sheet2 to "Totals" and remove Sheet3    Set oOrdersSheet = oSS.Worksheets(1)    oOrdersSheet.Name = "Orders"    Set oTotalsSheet = oSS.Worksheets(2)    oTotalsSheet.Name = "Totals"    oSS.Worksheets(3).Delete        '=== Build the First Worksheet (Orders) ==============================================            'Add headings to A1:F1 of the Orders worksheet and apply formatting    Set oRange = oOrdersSheet.Range("A1:F1")    oRange.Value = Array("Order Number", "Product ID", "Quantity", "Price", "Discount", "Total")    oRange.Font.Bold = True    oRange.Interior.Color = "Silver"    oRange.Borders(c.xlEdgeBottom).Weight = c.xlThick    oRange.HorizontalAlignment = c.xlHAlignCenter       'Apply formatting to the columns    oOrdersSheet.Range("A:A").ColumnWidth = 20    oOrdersSheet.Range("B:E").ColumnWidth = 15    oOrdersSheet.Range("F:F").ColumnWidth = 20    oOrdersSheet.Range("A2:E" & NumOrders + 1 _        ).HorizontalAlignment = c.xlHAlignCenter    oOrdersSheet.Range("D2:D" & NumOrders + 1).NumberFormat = "0.00"    oOrdersSheet.Range("E2:E" & NumOrders + 1).NumberFormat = "0 % "    oOrdersSheet.Range("F2:F" & NumOrders + 1).NumberFormat = "$ 0.00" '"_($* #,##0.00_)"            'Obtain the order information for the first five columns in the Orders worksheet    'and populate the worksheet with that data starting at row 2    Dim aOrderData    aOrderData = GetOrderInfo    oOrdersSheet.Range("A2:E" & NumOrders + 1).Value = aOrderData        'Add a formula to calculate the order total for each row and format the column    oOrdersSheet.Range("F2:F" & NumOrders + 1).Formula = "=C2*D2*(1-E2)"        oOrdersSheet.Range("F2:F" & NumOrders + 1).NumberFormat = "_(  $* #,##0.00   _)"    'Apply a border to the used rows    oOrdersSheet.UsedRange.Borders(c.xlInsideHorizontal).Weight = c.xlThin    oOrdersSheet.UsedRange.BorderAround , c.xlThin, 15        'Turn on AutoFilter and display an initial criteria where    'the Product ID (column 2) is equal to 5    oOrdersSheet.UsedRange.AutoFilter    oOrdersSheet.AutoFilter.Filters(2).Criteria.FilterFunction = c.ssFilterFunctionInclude    oOrdersSheet.AutoFilter.Filters(2).Criteria.Add "5"    oOrdersSheet.AutoFilter.Apply        'Add a Subtotal at the end of the usedrange    oOrdersSheet.Range("F" & NumOrders + 3).Formula = "=SUBTOTAL(9, F2:F" & NumOrders + 1 & ")"        'Apply window settings for the Orders worksheet    oOrdersSheet.Activate   'Makes the Orders sheet active    oSS.Windows(1).ViewableRange = oOrdersSheet.UsedRange.Address    oSS.Windows(1).DisplayRowHeadings = False    oSS.Windows(1).DisplayColumnHeadings = False    oSS.Windows(1).FreezePanes = True    oSS.Windows(1).DisplayGridlines = False        '=== Build the Second Worksheet (Totals) ===========================================        'Change the Column headings and hide row headings    oTotalsSheet.Activate    oSS.Windows(1).ColumnHeadings(1).Caption = "Product ID"    oSS.Windows(1).ColumnHeadings(2).Caption = "Total"    oSS.Windows(1).DisplayRowHeadings = False        'Add the product IDs to column 1    Dim aProductIDs    aProductIDs = GetProductIDs    oTotalsSheet.Range("A1:A" & NumProds).Value = aProductIDs    oTotalsSheet.Range("A1:A" & NumProds).HorizontalAlignment = c.xlHAlignCenter    'Add a formula to column 2 that computes totals per product from the Orders Sheet    oTotalsSheet.Range("B1:B" & NumProds).Formula = _        "=SUMIF(Orders!B$2:B$" & NumOrders + 1 & ",A1,Orders!F$2:F$" & NumOrders + 1 & ")"    oTotalsSheet.Range("B1:B" & NumProds).NumberFormat = "_(  $* #,##0.00   _)"    'Apply window settings for the Totals worksheet    oSS.Windows(1).ViewableRange = oTotalsSheet.UsedRange.Address        '=== Setup for final presentation ==================================================        oSS.DisplayToolbar = False    oSS.AutoFit = True    oOrdersSheet.Activate    Response.Write oSS.XMLData    Response.EndFunction GetOrderInfo()    ReDim aOrderInfo(NumOrders,5)    Dim aPrice, aDisc    aPrice = Array(10.25, 9.5, 2.34, 6.57, 9.87, 4.55, 6, 13.05, 3.3, 5.5)    aDisc = Array(0, 0.1, 0.15, 0.2)    For r = 0 To NumOrders-1        aOrderInfo(r, 0) = "'" & String(7-Len(CStr(r+1)), "0") & r+1 'Col 1 is Order Number        aOrderInfo(r, 1) = Int(Rnd() * NumProds) + 1                 'Col 2 is Product ID        aOrderInfo(r, 2) = Int(Rnd() * 20) + 1                       'Col 3 is Quantity        aOrderInfo(r, 3) = aPrice(aOrderInfo(r, 1)-1)                'Col 4 is Price        aOrderInfo(r, 4) = aDisc(Int(Rnd() * 4))                     'Col 5 is Discount    Next    GetOrderInfo = aOrderInfoEnd FunctionFunction GetProductIDs()    ReDim aPIDs(NumProds, 1)    For r = 0 To NumProds-1        aPIDs(r, 0) = r+1    Next    GetProductIDs = aPIDsEnd Function%>				

Hiển thị các XMLSS trên một trang Web

Để hiển thị mẫu XMLSS trên một trang Web, bạn chỉ phải đặt các XMLURL bất động sản cho một thành phần bảng tính đến URL cho ASP, như sau:
<html><body><object classid="clsid:0002E551-0000-0000-C000-000000000046" id="Spreadsheet1">  <param name="XMLURL" value="http://YourWebServer/xmlss.asp"></object></body></html>				
Chú ý Nếu bạn đang sử dụng Microsoft Office 2003, bạn có thể phải thay đổi các classid trong đoạn mã trên như được áp dụng.

Trong HTML trước, các XMLURL tài sản được thiết lập bằng cách sử dụng một <param> từ khóa. Bạn cũng có thể đặt các XMLURL bất động sản tại thời gian chạy nếu bạn muốn, bằng cách sử dụng đoạn mã sau.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"				

Hiển thị các XMLSS trong Microsoft Excel

XMLSS được tạo ra với các thành phần bảng tính có thể được mở trong Microsoft Excel. Định dạng và các tính năng bạn thực hiện trong các thành phần bảng tính có thể được chia sẻ với Microsoft Excel. Các thành phần bảng tính hỗ trợ một số tính năng Excel không. Ngoài ra, Excel hỗ trợ một số tính năng mà các thành phần bảng tính không. Bất kỳ thẻ XML hoặc thuộc tính Excel không thực hiện được bỏ qua khi XMLSS được mở ra.

Để xem các kết quả của các tập lệnh ASP mẫu trong Microsoft Excel, hãy làm theo các bước sau:
  1. Bắt đầu Microsoft Excel.
  2. Trên các Tệp trình đơn, nhấp vào Mở.
  3. Trong các Tên tệp hộp, loại http://YourWebServer/xmlss.asp, và sau đó nhấp vào Mở.
Kiểm tra bảng tính, và lưu ý rằng các dữ liệu và định dạng đã được áp dụng tại thời gian chạy tất cả các mặt tại bảng tính khi nó được mở ra trong Excel. Đó là một ngoại lệ: các chú thích tiêu đề được tạo ra trong các thành phần bảng tính không mang với Excel vì đây là một tính năng của các thành phần bảng tính Microsoft Excel không chia sẻ. Nếu bạn tạo XMLSS bằng cách sử dụng các thành phần bảng tính cho mục đích của hiển thị các tập tin trong Excel, được nhận thức của các tính năng khác nhau mỗi hỗ trợ.

Một cách để mở XMLSS ASP-tạo trong Microsoft Excel là để cung cấp loại Excel Multipurpose Internet Mail Extensions (MIME) như các ContentType trong ASP của bạn. Khi bạn sử dụng Excel MIME loại và duyệt đến ASP của bạn, các XMLSS có thể được kết xuất trong Microsoft Excel tại-chỗ trong trình duyệt. Để thực hiện việc này, hãy làm theo những bước sau:
  1. Mở XMLSS.asp trong một trình soạn thảo văn bản.
  2. Thay đổi dòng sau trong script:
    Response.ContentType = "text/xml"					
    Thay đổi dòng mã để trông giống như sau:
    Response.ContentType = "application/vnd.ms-excel"					
  3. Lưu các thay đổi để XMLSS.asp, và sau đó khởi động Windows Internet Explorer.
  4. Trình duyệt để http://YourWebServer/XMLSS.asp. Bảng tính XML là rendered trong Microsoft Excel lưu trữ tại chỗ trong trình duyệt.
THAM KHẢO
Để biết thêm chi tiết, hãy truy cập chủ đề cấu phần Web văn phòng lúc sau Web site của Microsoft:Để biết thêm chi tiết, 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:
285891Là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
278976 Làm thế nào để sử dụng XSL để chuyển đổi bảng tính Excel XML cho phía máy chủ sử dụng
257757 Xem xét cho phía máy chủ tự động hóa của văn phòng
XL2003 XL2007

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

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

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Active Server Pages 4.0

  • kbhowto kbofficewebspread kbmt KB288130 KbMtvi
Phản hồi