Sposób użycia stron ASP do utworzenia arkusza kalkulacyjnego XML do wyświetlania po stronie klienta

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 288130 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule przedstawiono skrypt Microsoft Active Server Pages (ASP), który tworzy arkusza kalkulacyjnego w formacie arkusza kalkulacyjnego XML (XMLSS) przy użyciu składnika Arkusz kalkulacyjny pakietu Office. XMLSS mogą być wyświetlane klienta w jednym na kilka sposobów:
  • W składniku Arkusz kalkulacyjny na stronie sieci Web
  • W programie Microsoft Excel wyświetlane w miejscu w przeglądarce
  • Otworzyć bezpośrednio w programie Microsoft Excel

Więcej informacji

Za pomocą składnika Arkusz kalkulacyjny kodu po stronie serwera do tworzenia arkuszy kalkulacyjnych zapewnia większą skalowalność i lepszą wydajność w porównaniu z użyciem po stronie serwera automatyzacji programu Microsoft Excel. Czy firma Microsoft nie recomment automatyzacji aplikacji pakietu Office, włącznie z programu Excel, na serwerze. Tej metody należy unikać, gdy dostępne są inne alternatywy dla osiągnięcia takich samych wyników. XMLSS może przetrwać wiele cech wspólnych składnik Arkusz kalkulacyjny i programu Microsoft Excel. Multi-Sheet skoroszytów, formatowanie komórek, Autofiltr, formuł i ponowne obliczenie stanowią niewielki podzbiór tych funkcji. Składnik Arkusz kalkulacyjny ma modelu obiektowego, zbliżony modelu obiektów programu Microsoft Excel. Dlatego Osoby zaznajomione z modelu obiektów programu Excel można łatwo zastosować niektóre istniejący kod programu Excel, modyfikacji do użytku składnika Arkusz kalkulacyjny.

Poniższy przykład ilustruje sposób generowania multi-sheet skoroszyt w XMLSS ASP przy użyciu składnika Arkusz kalkulacyjny. Próbki omówiono również sposób wyświetlania wyniku XMLSS klienta na stronie sieci Web lub w programie Microsoft Excel.

Skrypt ASP do budowania XMLSS przy użyciu składnika Arkusz kalkulacyjny

Z zastrzeżeniem następujących ASP XMLSS.asp w wirtualnym katalogu głównym serwera sieci Web. Domyślnie katalog główny to 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

%>
				

Wyświetlanie XMLSS na stronie sieci Web

Aby wyświetlić próbkę XMLSS na stronie sieci Web, należy tylko ustawić XMLURL Właściwość składnika Arkusz kalkulacyjny do adresu URL dla stron ASP, w następujący sposób:
<html>

<body>

<object classid="clsid:0002E551-0000-0000-C000-000000000046" id="Spreadsheet1">
  <param name="XMLURL" value="http://YourWebServer/xmlss.asp">
</object>

</body>

</html>
				
Uwaga Jeśli używasz pakietu Microsoft Office 2003 może być konieczna zmiana Identyfikator klasy w kodzie powyżej, stosownie do przypadku.

W poprzednim kodzie HTML XMLURL Właściwość jest ustawiona za pomocą <param> tag. Można również ustawić XMLURL Właściwość w czasie wykonywania, jeśli to konieczne, przy użyciu następującego kodu.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"
				

Wyświetlanie XMLSS w programie Microsoft Excel

XMLSS, który jest tworzony składnik Arkusz kalkulacyjny można otworzyć w programie Microsoft Excel. Formatowanie i funkcje, które implementuje w arkuszu kalkulacyjnym mogą być udostępniane w programie Microsoft Excel. Składnik Arkusz kalkulacyjny obsługuje niektóre funkcje, które program Excel nie obsługuje. Ponadto program Excel obsługuje niektóre funkcje, które nie zawiera składnik Arkusz kalkulacyjny. Po otwarciu XMLSS, znaczniki XML lub atrybuty, które nie implementuje programu Excel są ignorowane.

Aby wyświetlić wyniki przykładowy skrypt ASP w programie Microsoft Excel, wykonaj następujące kroki:
  1. Uruchom program Microsoft Excel.
  2. Na Plik menu, kliknij przycisk Otwórz.
  3. W Nazwa pliku pole typu http://YourWebServer/XMLSS.asp, a następnie kliknij przycisk Otwórz.
Sprawdź skoroszyt i należy zauważyć, że dane i formaty, które były stosowane w czasie wykonywania wszystkich obecnych w skoroszycie podczas otwierania w programie Excel. Istnieje jeden wyjątek: podpisy nagłówka utworzone w składniku Arkusz kalkulacyjny nie przenoszenia do programu Excel, ponieważ jest to funkcja składnika Arkusz kalkulacyjny programu Microsoft Excel nie udostępnia. Jeśli XMLSS utworzone przy użyciu składnika Arkusz kalkulacyjny z wyświetleniem pliku w programie Excel, należy pamiętać o różnych funkcji każdy obsługuje.

Innym sposobem otwarcia XMLSS ASP tworzone w programie Microsoft Excel jest dostarczanie typu Excel Multipurpose Internet Mail Extensions (MIME) jako Właściwość ContentType w ASP. Podczas używania typu MIME w programie Excel i przejdź do programu ASP XMLSS może być renderowana w programie Microsoft Excel w miejscu w przeglądarce. Aby to zrobić, wykonaj następujące kroki:
  1. XMLSS.asp Otwórz w edytorze tekstu.
  2. Zmień następujący wiersz w pliku skryptu:
    Response.ContentType = "text/xml"
    					
    Zmień wiersz kodu podobne do następujących:
    Response.ContentType = "application/vnd.ms-excel"
    					
  3. Zapisać zmiany w XMLSS.asp, a następnie uruchom program Windows Internet Explorer.
  4. Przejdź do http://YourWebServer/XMLSS.asp. Arkusz kalkulacyjny XML jest renderowane w obsługiwanej w programie Microsoft Excel w miejscu w przeglądarce.

Materiały referencyjne

Więcej informacji na ten temat można znaleźć w temacie Składniki Office Web Components w następującej witrynie firmy Microsoft w sieci Web:
http://support.microsoft.com/ofd
Aby uzyskać więcej informacji kliknij następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
285891Jak utworzyć arkusz kalkulacyjny XML dla programu Excel 2002 i Excel 2003 za pomocą języka Visual Basic lub ASP
278976 Jak używać arkusza kalkulacyjnego XML programu Excel do użycia po stronie serwera Przekształcenie XSL
257757 Zagadnienia dotyczące po stronie serwera automatyzacji pakietu Office

Właściwości

Numer ID artykułu: 288130 - Ostatnia weryfikacja: 22 czerwca 2011 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
Słowa kluczowe: 
kbhowto kbofficewebspread kbmt KB288130 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:288130

Przekaż opinię

 

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