Come utilizzare ASP per creare il foglio di calcolo XML per la visualizzazione lato client

Traduzione articoli Traduzione articoli
Identificativo articolo: 288130 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Questo articolo viene illustrato uno script di Microsoft Active Server Pages (ASP) che crea un foglio di calcolo nel formato foglio di calcolo XML (XMLSS) utilizzando il componente foglio di lavoro. Il formato XMLSS pu˛ essere visualizzato lato client in modi diversi:
  • Nel componente foglio di calcolo in una pagina Web
  • In Microsoft Excel illustrato posto nel browser
  • Aperto direttamente in Microsoft Excel

Informazioni

Utilizzando il componente di foglio di calcolo nel codice lato server per creare fogli di calcolo che garantisce ulteriori scalabilitÓ e prestazioni migliori rispetto all'utilizzo sul lato server, automazione di Microsoft Excel. Facciamo recomment applicazioni automazione di Office), tra cui Excel, sul server. Questo metodo dovrÓ essere evitato quando sono disponibili altre alternative per ottenere gli stessi risultati. XMLSS possibile mantenere molte delle funzionalitÓ comuni alla componente foglio di calcolo e il Microsoft Excel. Le cartelle di lavoro multiplo, la formattazione delle celle, filtro automatico, le formule di cella e re-calculation rappresentano alcuni di tali funzionalitÓ. Il componente foglio di lavoro dispone di un modello a oggetti simile al modello a oggetti di Microsoft Excel. Di conseguenza, se ha familiaritÓ con il modello oggetto di Excel, Ŕ possibile applicare facilmente parte il codice di Excel esistente con modifiche per l'utilizzo con il componente foglio di calcolo.

Nell'esempio riportato di seguito viene illustrato come generare una cartella di lavoro multiplo in formato XMLSS utilizzo del componente foglio di calcolo con ASP. Nell'esempio viene inoltre spiegato come Ŕ possibile visualizzare il risultante XMLSS lato client in una pagina Web o in Microsoft Excel.

Script ASP per generare XMLSS utilizzando il componente foglio di calcolo

Salvare l'ASP seguente come XMLSS.asp nella directory principale virtuale del server Web. Per impostazione predefinita, la directory principale Ŕ 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

%>
				

Visualizzare il formato XMLSS in una pagina di Web

Per visualizzare l'esempio XMLSS in una pagina Web, Ŕ necessario solo impostare la proprietÓ XMLURL per un componente foglio di calcolo all'URL per l'ASP, come illustrato di seguito:
<html>

<body>

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

</body>

</html>
				
Nota se si utilizza Microsoft Office 2003, potrebbe essere necessario modificare il classid nel codice precedente come applicabile.

Nel codice HTML precedente, la proprietÓ XMLURL Ŕ impostata utilizzando un <param> tag. ╚ inoltre possibile impostare la proprietÓ XMLURL in fase di esecuzione se si desidera, utilizzando il codice riportato di seguito.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"
				

Visualizzare il formato XMLSS in Microsoft Excel

Il formato XMLSS creato con il componente foglio di calcolo pu˛ essere aperto in Microsoft Excel. Formattazione e delle funzioni che Ŕ possibile implementare nel componente foglio di calcolo possono essere condivisa con Microsoft Excel. Il componente foglio di calcolo supporta alcune funzionalitÓ che non Excel. Excel supporta inoltre alcune funzionalitÓ che non componente foglio di calcolo. Qualsiasi tag XML o gli attributi che non implementa Excel vengono ignorati quando viene aperto il formato XMLSS.

Per visualizzare i risultati dello script di esempio ASP in Microsoft Excel, attenersi alla seguente procedura:
  1. Avviare Microsoft Excel.
  2. Nel menu file , fare clic su Apri .
  3. Nella casella Nome File digitare http://YourWebServer/xmlss.asp e quindi fare clic su Apri .
Esaminare la cartella di lavoro e si noti che i dati e formati che sono stati applicati in fase di esecuzione sono tutti presenti nella cartella di lavoro quando questo viene aperto in Excel. Si Ŕ verificata un eccezione: il titolo le didascalie vengono create nel componente foglio di calcolo non sono dotati Excel poichÚ si tratta di una funzionalitÓ del componente foglio di calcolo Microsoft Excel non viene condiviso. Se si crea XMLSS utilizzando il componente foglio di lavoro allo scopo di visualizzare il file in Excel, essere a conoscenza di diverse funzionalitÓ supportata da ogni.

Un altro per aprire il formato XMLSS creato da ASP in Microsoft Excel consiste nel fornire il tipo MIME (Multipurpose Internet Mail Extensions) di Excel come il ContentType in ASP. Quando si utilizza il tipo MIME di Excel e per ASP, il formato XMLSS pu˛ eseguire il rendering in Microsoft Excel in-il browser. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Aprire XMLSS.asp in un editor di testo.
  2. Modificare la seguente riga nello script:
    Response.ContentType = "text/xml"
    					
    modificare la riga di codice simile a quella quanto segue:
    Response.ContentType = "application/vnd.ms-excel"
    					
  3. Salvare le modifiche apportate a XMLSS.asp e quindi avviare Windows Internet Explorer.
  4. Individuare http://YourWebServer/XMLSS.asp. Il rendering del foglio di calcolo XML viene eseguito in Microsoft Excel ospitato sul posto nel browser.

Riferimenti

Per ulteriori informazioni, visitare la sezione Office Web Components, il seguente sito Web Microsoft:
http://support.microsoft.com/ofd
Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
285891L'utilizzo di Visual Basic o ASP per creare un foglio di calcolo XML per Excel 2002 ed Excel 2003
278976L'utilizzo di XSL per trasformare il foglio di calcolo XML di Excel per l'utilizzo sul lato server
257757Considerazioni per l'automazione sul lato server di Office

ProprietÓ

Identificativo articolo: 288130 - Ultima modifica: lunedý 14 maggio 2007 - Revisione: 5.2
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi:á
kbmt kbhowto kbofficewebspread KB288130 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 288130
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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