Verwendung von ASP zum Erstellen von Kalkulationstabelle XML für clientseitigen Anzeige

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 288130 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt Microsoft Active Server Pages (ASP-Skript, die eine Kalkulationstabelle im XML-Kalkulationstabellenformat (XMLSS) mithilfe der Office Spreadsheet-Komponente erstellt). Der XMLSS kann angezeigten clientseitige auf mehrere Arten sein:
  • In der Tabellenkomponente auf einer Webseite
  • In Microsoft Excel dargestellt in-Place im browser
  • Direkt in Microsoft Excel geöffnet

Weitere Informationen

Mithilfe der Spreadsheet-Komponente in serverseitigem Code um Kalkulationstabellen zu erstellen, bietet mehr Skalierbarkeit und eine bessere Leistung im Vergleich zur Verwendung von serverseitigen Automatisierung von Microsoft Excel. Wir tun nicht Recomment Automatisierung von Office-Anwendungen, einschließlich Excel auf dem Server. Diese Methode sollte vermieden werden, wenn andere Alternativen für die gleichen Ergebnisse erzielen Sie verfügbar sind. XMLSS kann viele der Features der Tabellenkomponente und die Microsoft Excel beibehalten. Mehrblatt Arbeitsmappen, Zellformatierung, AutoFilter, Zellformeln und Re-calculation darstellen eine Handvoll dieser Features. Die Tabellenkomponente verfügt über ein Objektmodell, die das Objektmodell für Microsoft Excel genau entspricht. Daher, wenn Sie mit der Excel-Objektmodell vertraut sind, können Sie problemlos einiger den vorhandenen Excel-Code mit Änderungen zur Verwendung mit der Spreadsheet-Komponente anwenden.

Das folgende Beispiel veranschaulicht, wie eine Mehrblatt Arbeitsmappe im XMLSS-Verwenden der Spreadsheet-Komponente mit ASP generiert. Das Beispiel erläutert außerdem, wie Sie die resultierende XMLSS clientseitige auf einer Webseite oder in Microsoft Excel anzeigen können.

ASP-Skript um XMLSS zu erstellen, mithilfe der Spreadsheet-Komponente

Speichern Sie die folgende ASP als XMLSS.asp im virtuellen Stammverzeichnis Ihres Webservers. Standardmäßig ist das Stammverzeichnis 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

%>
				

Der XMLSS auf einer Webseite anzeigen

Um das Beispiel XMLSS auf einer Webseite anzuzeigen, müssen Sie nur die XMLURL -Eigenschaft für Festlegen einer Tabellenkomponente auf den URL für die ASP wie folgt:
<html>

<body>

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

</body>

</html>
				
Hinweis Wenn Sie Microsoft Office 2003 verwenden, müssen Sie möglicherweise die Classid im obigen Code ggf. ändern.

Im vorangegangenen HTML wird die XMLURL -Eigenschaft mithilfe eines <param> festgelegt.-Tag. Sie konnte die XMLURL -Eigenschaft auch festlegen, zur Laufzeit ggf. mithilfe des folgenden Codes.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"
				

Anzeigen der XMLSS in Microsoft Excel

XMLSS, die mit der Spreadsheet-Komponente erstellt wurde, kann in Microsoft Excel geöffnet werden. Die Formatierung und Features, die Sie in der Spreadsheet-Komponente implementieren, können mit Microsoft Excel freigegeben werden. Die Tabellenkomponente unterstützt einige Funktionen, die Excel nicht. Excel wird darüber hinaus einige Features, die die Tabellenkomponente nicht unterstützt. Alle XML-Tags oder Attribute, die Excel nicht implementiert werden beim der XMLSS geöffnet wird ignoriert.

Um die Ergebnisse des Beispiel-ASP-Skripts in Microsoft Excel anzuzeigen, gehen Sie folgendermaßen vor:
  1. Starten Sie Microsoft Excel.
  2. Klicken Sie im Menü Datei auf Öffnen .
  3. Geben Sie in das Feld Dateiname http://YourWebServer/xmlss.asp und klicken Sie dann auf Öffnen .
Überprüfen Sie die Arbeitsmappe, und beachten Sie, dass die Daten und Formate, die zur Laufzeit angewendet wurden sind alle in der Arbeitsmappe vorhanden, wenn es in Excel geöffnet wird. Es gibt eine Ausnahme: die Überschrift-Beschriftungen, die in der Spreadsheet-Komponente erstellt werden nicht übertragen zu Excel da dies eine Funktion der Spreadsheet-Komponente ist, die Microsoft Excel nicht gemeinsam. Wenn Sie XMLSS mithilfe der Tabellenkomponente zum Zweck der Anzeigen der Datei in Excel erstellen, achten die verschiedenen Features jedes unterstützt.

Eine andere Möglichkeit der XMLSS ASP erstellt in Microsoft Excel öffnen besteht darin, den Typ Excel MULTIPURPOSE Internet Mail Extensions () als ContentType in Ihren ASP angeben. Wenn Sie den Excel-MIME-Typ und wechseln Sie zu Ihrer ASP, kann der XMLSS in Microsoft Excel in-Place im Browser gerendert werden. Gehen Sie hierzu folgendermaßen vor:
  1. Öffnen Sie XMLSS.asp in einem Texteditor.
  2. Ändern Sie die folgende Zeile im Skript:
    Response.ContentType = "text/xml"
    					
    ändern Sie die Codezeile, die die folgenden ähnelt:
    Response.ContentType = "application/vnd.ms-excel"
    					
  3. Speichern Sie Ihre Änderungen zu XMLSS.asp, und starten Sie Windows Internet Explorer.
  4. Wechseln Sie zu http://YourWebServer/XMLSS.asp. Die XML-Kalkulationstabelle wird in Microsoft Excel gehostet in-Place im Browser gerendert.

Informationsquellen

Weitere Informationen finden Sie im Office-Webkomponenten Thema der folgenden Microsoft-Website:
http://support.microsoft.com/ofd
Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
285891Verwendung von Visual Basic oder ASP zum Erstellen einer XML-Kalkulationstabelle für Excel 2002 und Excel 2003
278976Verwendung von XSL zum Excel XML-Kalkulationstabelle für serverseitige Verwendung transformieren
257757Überlegungen bei der serverseitigen Automatisierung von Office

Eigenschaften

Artikel-ID: 288130 - Geändert am: Montag, 14. Mai 2007 - Version: 5.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office 2003 Web Components
  • Microsoft Office XP Web Components
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
Keywords: 
kbmt kbhowto kbofficewebspread KB288130 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 288130
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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