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

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 288130 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

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.End


Function 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 = aOrderInfo
End Function

Function GetProductIDs()
    ReDim aPIDs(NumProds, 1)
    For r = 0 To NumProds-1
        aPIDs(r, 0) = r+1
    Next
    GetProductIDs = aPIDs
End 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:
http://support.Microsoft.com/ofd
Đ? 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

Thu?c tính

ID c?a bài: 288130 - L?n xem xét sau cùng: 23 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
T? khóa: 
kbhowto kbofficewebspread kbmt KB288130 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

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