Het gebruik van ASP XML spreadsheet voor client-side weergave maken

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 288130 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel ziet u Microsoft Active Server Pages (ASP)-script dat u een werk blad in de indeling XML-werkblad (XMLSS) maakt met behulp van het onderdeel Office-werkblad. De XMLSS kan weer gegeven client-side op verschillende manieren:
  • In het onderdeel werk blad op een webpagina
  • In Microsoft Excel weer gegeven ter plaatse in de browser
  • Rechtstreeks in Microsoft Excel geopend

Meer informatie

Werk bladen maken met het werk blad onderdeel in server-side code biedt meer schaal baarheid en betere prestaties in vergelijking met server-side automatisering van Microsoft Excel gebruiken. Wij doen niet recomment automatisering van Office-toepassingen, met inbegrip van Excel op de server. Deze methode moet worden vermeden wanneer andere manieren om dezelfde resultaten te bereiken, beschikbaar zijn. XMLSS, kunnen veel van de functies die gelden voor de werk blad component en Microsoft Excel behouden. Multi-Sheet werk mappen, cel opmaak, Auto Filter, cel formules en herberekening vertegenwoordigen een handvol van die functies. De werk blad component is een objectmodel dat overeenkomt met het objectmodel voor Microsoft Excel. Dus als u bekend met het Excel-objectmodel bent, kunt u eenvoudig toepassen sommige van uw bestaande Excel-code, met wijzigingen voor de werk blad component.

In het volgende voorbeeld wordt gedemonstreerd hoe een multi-sheet werkmap in de werk blad component gebruiken met ASP XMLSS genereren. Het monster wordt ook beschreven hoe u de resulterende XMLSS-client kunt geven op een webpagina of in Microsoft Excel.

ASP-script XMLSS met behulp van het onderdeel werk blad maken

De volgende ASP-pagina opslaan als XMLSS.asp in de virtuele hoofdmap van uw webserver. De hoofdmap is standaard 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

%>
				

De XMLSS op een webpagina weer geven

Het monster XMLSS op een webpagina weer geven, moet u alleen instellen deXMLURLeigenschap voor een werk blad onderdeel naar de URL voor de ASP-code als volgt:
<html>

<body>

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

</body>

</html>
				
OpmerkingAls u Microsoft Office 2003 gebruikt, moet u wellicht wijzigen deClassIDin de bovenstaande code indien van toepassing.

In het voorgaande HTML-code, deXMLURLeigenschap wordt ingesteld via een<param>label. U kunt ook instellen deXMLURLeigenschap tijdens de uitvoering desgewenst met de volgende code.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"
				

De XMLSS weer geven in Microsoft Excel

De XMLSS die is gemaakt met het onderdeel werk blad kan in Microsoft Excel worden geopend. Opmaak en functies die u in de werk blad component implementeert kunnen worden gedeeld met Microsoft Excel. De werk blad component ondersteunt bepaalde functies die Excel niet. Excel ondersteunt bovendien enkele functies die niet door het werk blad onderdeel. Een XML-tags of ken merken die niet worden geïmplementeerd door Excel worden genegeerd wanneer de XMLSS wordt geopend.

De resultaten van het voorbeeld ASP-script in Microsoft Excel weer geven, gaat u als volgt te werk:
  1. Microsoft Excel start.
  2. Op deBestandmenu, klikt u opOpen.
  3. In deBestandsnaamvak, typhttp://YourWebServer/XMLSS.ASP, en klik vervolgens opOpen.
Onderzoekt de werkmap en de gegevens en opmaak die zijn toegepast in runtime zijn alle aanwezig in de werkmap wanneer deze wordt geopend in Excel. Er is één uitzondering: de post bijschriften die zijn gemaakt in het werk blad onderdeel niet uitvoeren via Excel omdat dit een functie van het werk blad onderdeel dat Microsoft Excel niet deelt. Als u het onderdeel werk blad voor het weer geven van het bestand in Excel van XMLSS, zich bewust zijn van de verschillende functies die door elk ondersteund.

Ook de XMLSS ASP gemaakt in Microsoft Excel openen is het leveren van het type Excel Multipurpose Internet Mail Extensions (MIME) als deContent typein uw ASP-pagina. Wanneer u Excel MIME-type gebruiken en naar uw ASP-pagina, kan de XMLSS in Microsoft Excel ter plaatse in de browser worden weer gegeven. Hiertoe gaat u als volgt te werk:
  1. XMLSS.asp in een teksteditor openen.
  2. Wijzig de volgende regel in het script:
    Response.ContentType = "text/xml"
    					
    Wijzig de code in die lijkt op de volgende regel:
    Response.ContentType = "application/vnd.ms-excel"
    					
  3. Sla de wijzigingen in XMLSS.asp en start Windows Internet Explorer.
  4. Ga naar http://YourWebServer/XMLSS.asp. Het XML-werkblad wordt weer gegeven in Microsoft Excel gehost ter plaatse in de browser.

Referenties

Bezoek voor meer informatie het onderwerp Office Web Components op de volgende Microsoft-website:
http://support.Microsoft.com/ofd
Voor meer informatie klikt u op de volgende artikel nummers in de Microsoft Knowledge Base:
285891Het gebruik van Visual Basic- of ASP-pagina maken van een XML-werkblad voor Excel 2002 en Excel 2003
278976Het gebruik van XSL naar Excel XML-werkblad voor server-side transformatie
257757Overwegingen voor server-side automatisering van Office

Eigenschappen

Artikel ID: 288130 - Laatste beoordeling: zaterdag 26 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Active Server Pages 4.0
Trefwoorden: 
kbhowto kbofficewebspread kbmt KB288130 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:288130

Geef ons feedback

 

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