Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo utilizar ASP para crear hoja de cálculo XML para el lado del cliente

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 288130
Resumen
Este artículo ilustra la secuencia de comandos de páginas Active Server (ASP) de Microsoft que crea una hoja de cálculo en el formato de hoja de cálculo XML (XMLSS) mediante el componente Spreadsheet de Office. El XMLSS puede ser mostrada en el cliente de varias maneras:
  • En el componente de hoja de cálculo en una página Web
  • En Microsoft Excel se muestra in situ en el explorador
  • Abrir directamente en Microsoft Excel
Más información
Mediante el componente de hoja de cálculo de código del lado del servidor para crear hojas de cálculo proporciona mayor escalabilidad y un mejor rendimiento en comparación con usando automatización del lado del servidor de Microsoft Excel. Hacemos no recomment automatización de aplicaciones Office, como Excel, en el servidor. Este método debe evitarse cuando otras alternativas para lograr los mismos resultados están disponibles para usted. Puede conservar XMLSS muchas de las características comunes al componente de hoja de cálculo y Microsoft Excel. Libros multi-Sheet, formato de celda, Autofiltro, fórmulas de celda y re-calculation representan un puñado de esas características. El componente de hoja de cálculo tiene un modelo de objetos que coincida con el modelo de objetos de Microsoft Excel. Por lo tanto, si está familiarizado con el modelo de objetos de Excel, puede aplicar fácilmente parte su código de Excel existente, con modificaciones, para utilizar con el componente Spreadsheet.

En el siguiente ejemplo muestra cómo generar un libro multi-sheet en XMLSS mediante el componente hoja de cálculo con ASP. El ejemplo también explica cómo puede mostrar el resultante XMLSS cliente en una página Web o en Microsoft Excel.

Secuencia de comandos ASP para generar XMLSS mediante el componente de hoja de cálculo

Guarde el siguiente ASP como XMLSS.asp en el directorio raíz virtual del servidor Web. De forma predeterminada, el directorio raíz es 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%>				

Mostrar el XMLSS en una página Web

Para mostrar en el ejemplo XMLSS en una página Web, sólo deberá establecer la propiedad XMLURL de un componente hoja de cálculo a la dirección URL de ASP, como sigue:
<html><body><object classid="clsid:0002E551-0000-0000-C000-000000000046" id="Spreadsheet1">  <param name="XMLURL" value="http://YourWebServer/xmlss.asp"></object></body></html>				
Nota si está utilizando Microsoft Office 2003, quizás tenga que cambiar el classid en el código anterior aplicable.

En el HTML anterior, la propiedad XMLURL se establece utilizando un <param> etiqueta. También se podría establecer la propiedad XMLURL en tiempo de ejecución si lo desea, mediante el código siguiente.
   Spreadsheet1.XMLURL = "http://YourWebServer/xmlss.asp"				

Mostrar el XMLSS en Microsoft Excel

El XMLSS creada con el componente de hoja de cálculo puede abrirse en Microsoft Excel. Formato y funciones que se implementa en el componente de hoja de cálculo pueden compartirse con Microsoft Excel. El componente Spreadsheet es compatible con algunas características que Excel no. Además, Excel admite algunas características que el componente Spreadsheet no. Las etiquetas XML o atributos que Excel no implementa se omiten cuando se abre el XMLSS.

Para ver los resultados de la secuencia de comandos ASP de ejemplo en Microsoft Excel, siga estos pasos:
  1. Inicie Microsoft Excel.
  2. En el menú archivo , haga clic en Abrir .
  3. En el cuadro Nombre de archivo , escriba http://YourWebServer/xmlss.asp y a continuación, haga clic en Abrir .
Examine el libro y observe que los datos y formatos que se aplicaron en tiempo de ejecución están todos los presentes en el libro cuando éste se abre en Excel. Hay una excepción: los títulos de encabezado que se crean en el componente Spreadsheet no llevan a través a Excel ya que es una característica del componente hoja de cálculo que Microsoft Excel no se comparte. Si crear XMLSS mediante el componente de hoja de cálculo con el fin de mostrar el archivo en Excel, tener en cuenta las distintas características que admite cada.

Otra forma de abrir el XMLSS ASP creada en Microsoft Excel es proporcionar el tipo MIME (Extensiones multipropósito de correo de Internet) de Excel como el ContentType en la página ASP. Cuando se utiliza el tipo MIME de Excel y vaya a la página ASP, se puede representar el XMLSS en Microsoft Excel en lugar de en el explorador. Para ello, siga estos pasos:
  1. Abra XMLSS.asp en un editor de texto.
  2. Cambie la línea siguiente en la secuencia de comandos:
    Response.ContentType = "text/xml"					
    cambiar la línea de código similares a los siguientes:
    Response.ContentType = "application/vnd.ms-excel"					
  3. Guardar los cambios a XMLSS.asp y, a continuación, inicie Windows Internet Explorer.
  4. Vaya a http://YourWebServer/XMLSS.asp. La hoja de cálculo XML se representa en Microsoft Excel alojado in situ en el explorador.
Referencias
Para obtener más información, visite el tema de Office Web Components en el siguiente sitio Web de Microsoft: Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
285891Cómo utilizar Visual Basic o ASP para crear una hoja de cálculo XML para Excel 2002 y Excel 2003
278976Cómo utilizar XSL para transformar la hoja de cálculo XML de Excel para usarla de lado del servidor
257757Consideraciones para la automatización del lado del servidor de Office
XL2003 XL2007

Warning: This article has been translated automatically

Propiedades

Id. de artículo: 288130 - Última revisión: 05/14/2007 21:51:06 - Revisión: 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 KbMtes
Comentarios