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

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

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: 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
XL2003 XL2007

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 288130 – Letzte Überarbeitung: 05/14/2007 21:51:06 – Revision: 5.2

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

  • kbmt kbhowto kbofficewebspread KB288130 KbMtde
Feedback