???? ID: 319180 - ????? ???????: 04 ?????? 2010 - ??????: 2.0

Excel ?? ??? Visual Basic .NET ?? asp.NET ?? ????? ?? ???? XML ?????????? ?? ??? DataSet transform ???? ????

?????? ??????This article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

?? ????? ??

??? ?? ??????? ???? | ??? ?? ??????? ????

??????

?? ??? ?? ??? ???? ????? ?? ?? ???? transform ???? ?? ??? ???DataSet???? ?? ??? ?????????? XML ?? Excel ??? ???? ?? ???? ??? XML ?????????? ??? Excel ?????? ?? ?????? ???? ???? ??? ?? ????????? ?? ??? ???? multi-sheet ???????????????, ?????, ??????????? Excel ?? ??????? ?????

?? ???? ????? ?? ?? ?? ????? ???? ?? ?????? ???:
  • XSL Transformations
  • XML ?????????? Excel
  • ASP.NET

????? ??? ?????????

????????? ??????

?? ??? ?? ??? ????? illustrates ???? ?????-???? ?? ???????-???? ??? ?????? ???? ?? XML ?????????? ??? Excel ?? ??????? ?? ??? ?? ??? ??????
  • Default.htm?? ???????? ?? ?? ?? ???????? ??? ????? ??? ????? ???? IDs ?? ???? ??? ????? ????, ?? ????? ????? ???? ??????? ????????? ???? ?? ?? ??? ???? ID ?? ???? ?? ????? ???
  • Header.htmHTML ???? ??? ?? ????? ??? ????? ?? ??? ????????? ??? ???
  • Getdata.VBHTTP ?????? ?? ?? ?????????? ?? ??? ???? ??? ?????? ???? ?? ????? ??? ????? ?? ??? IDs ???? ?? ????? ??, ?? ?? ????? ?????? ??? ????????? ???? ???? ?? ?? ???? ??????? ?? ???????? ?? ??????? ???? ??? HTTP ?????? ???? ??? ??????? ?? ??? ?????? ??????? ???? ??, ?? ?? ????? ??DataSet???? ?? ??? ?? ?? ?? ??? XML ????????? ???? ??DataSet???? ?? ??? ?????
  • Transform.XSLTXSLT ???? transform ???? ?? ??? ????? ???? ??? ??DataSetXML ?????????? Excel XML ???? ?? ??? ???
????? ??? ??? Microsoft SQL Server ???? ???? ?? ????? ???? ?? ????????? ????? ???????? ????? ????? ?? ?? ?? ???? ????? ?? ??? ????????? ?? ???? ??????? ???????? (http://localhost) ?? ??????? ????? ??? ?? ????? ???? ???? ?? ???? ??? ??? ????? ?? ????? ???? ??????? ???????? ??, ???????????? ?????in the URLs of the sample with the name of your Web server.

Generate the DataSet

In this section, you create the HTTP handler and the client-side components that are needed to retrieve order information. TheDataSetis returned to the main frame as plain XML; theDataSetis not transformed.
  1. Create an empty Web project named ExcelTransform. ??? ???? ?? ???, ????? ????? ?? ???? ????::
    1. ????? ????????menu in Visual Studio. NET, click????? ????-????? ????, ?? ???? ????????????.
    2. ????? ????,Visual Basic ?????????????? ????, ?? ???? ???Empty Web Project????????:.
    3. Name the project http://localhost/ExcelTransform, and then clickOK.
  2. Add references to the project. ??? ???? ?? ???, ????? ????? ?? ???? ????::
    1. ????? ????????????????? ??,?????? ??????.
    2. In the list of components on the.NET??? ??,System.data.dll?? ????-????? ????, ?? ???? ?????? ????.
    3. Repeat the preceding step forSystem.dll, forSystem.web.dll, ?? ?? ???System.XML.dll.
    4. ????? ????,OK.
  3. ????? ????????????????? ??,????? ??????, name the classGetdata.vb?? ????-????? ????, ?? ???? ???OK.
  4. ??? ??? ?????Getdata.VB?? ????? ???

    ???:?????????? ID <username>?? ??????? ????? ?????? = <strong password="">??? ??? ?? ??? ?? ?? ??? ?? ????? ?? ????? ????????? ???? ?? ?????????? ID ??? ???????. ?? ?? ???????? ???? ?? ??? ??????? ?????????</strong></username>
    Imports System.Web
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.Data
    Imports System.Data.SqlClient
    
    Public Class GetData
       Implements IHttpHandler
    
       Private sConn As String = _
          "User ID=<username>;Password=<strong password>;Initial Catalog=Northwind;Data Source=YourSQLServer;"
    
       Public ReadOnly Property IsReusable() As Boolean _
       Implements IHttpHandler.IsReusable
          Get
             Return False
          End Get
       End Property
    
       Public Sub ProcessRequest(ByVal context As HttpContext) _
       Implements IHttpHandler.ProcessRequest
    
          Dim conn As SqlConnection
          Dim sOrderRequested As String
          sOrderRequested = context.Request.Item("OrderID")
    
          If Not (sOrderRequested > "") Then
    
             '=== If no order is requested, assume that this is a request
             '=== to fill the drop-down list in the Header.htm template
             '=== with the list of OrderIDs.
    
             'Get a DataSet for a list of OrderIDs.
             Dim sSQL As String = "Select OrderID from Orders"
             conn = New SqlConnection(sConn)
             conn.Open()
             Dim cmd As New SqlCommand(sSQL, conn)
             Dim rdr As SqlDataReader = cmd.ExecuteReader
    
             'Open the header template for the frameset and fill
             'in the <option> child nodes for the drop-down lists.
             Dim sHTML As String, sOrderID As String
             Dim xmlDoc As New XmlDocument()
             xmlDoc.Load(context.Server.MapPath("header.htm"))
             Dim oElem As XmlElement = _
                xmlDoc.DocumentElement.GetElementsByTagName("select").Item(0)
             Dim oChild As XmlElement
             Do While rdr.Read
                sOrderID = rdr.GetInt32(0).ToString
                oChild = xmlDoc.CreateElement("option")
                oChild.SetAttribute("value", sOrderID)
                oChild.InnerText = sOrderID
                oElem.AppendChild(oChild)
             Loop
             rdr.Close()
             conn.Close()
    
             'Return the modified header template.
             context.Response.Write(xmlDoc.InnerXml)
    
          Else
    
             '=== If an order is requested, create a DataSet for that
             '=== order and return the results to the client browser.
    
             'Build a DataSet for the order.
             conn = New SqlConnection(sConn)
             conn.Open()
             Dim ds As DataSet = New DataSet("Order")
             Dim CustDa As SqlDataAdapter = New SqlDataAdapter( _
                "SELECT OrderID, CompanyName, Address, City, Region, PostalCode, Country, Freight " & _
                "FROM Customers " & _
                "INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID " & _
                "WHERE (((Orders.OrderID)=" & sOrderRequested & "))", conn)
             CustDa.Fill(ds, "Customer")
             Dim ItemsDa As SqlDataAdapter = New SqlDataAdapter( _
                "SELECT Products.ProductName, [Order Details].Quantity, " & _
                "  [Order Details].[UnitPrice]*[Quantity]*(1-[Discount]) AS ItemTotal " & _
                "FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID " & _
                "WHERE (([Order Details].[OrderID]) = " & sOrderRequested & ")", conn)
             ItemsDa.Fill(ds, "Items")
             conn.Close()
    
             SendResults(context, ds)
             context.Response.End()
    
          End If
    
       End Sub
    
        Private Sub SendResults(ByVal context As HttpContext, ByVal ds As DataSet)
             'Write the XML for the DataSet.
             context.Response.ContentType = "text/xml"
             context.Response.Output.Write(ds.GetXml)
             context.Response.End()
        End Sub
    End Class
    ???:: ???Getdata.VB, ?? ??????? ???? ?? ??? ?? ?????????sConnSQL ??? ??? ???????? ?? ??? ??? ????? ??????? ???????? ?? ??? ????? ?? ?? ????????? ????? ??????? ??? ????

  5. ????? ????????????????? ??,?? ???? ??? ?????, ????? ??????? ??????????? ?????????????, ?? ???? ???OK.
  6. ????? ??? ?? Web.config ??? ??? ?? ???????????? ????:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
       <system.web>
          <httpHandlers>
             <add verb="*" path="GetData.aspx" type="ExcelTransform.GetData, ExcelTransform" />
          </httpHandlers>
       </system.web>
    </configuration> 
  7. ????? ????????????????? ??,HTML ????? ?????, ????? header.htm ???, ?? ???? ??? ????? ????OK.
  8. ????? ????????????? ??,HTML ?????.
  9. ????? ??? ?? header.htm ??? ??? ?? ???????????? ????:
    <html>
       <script language="javascript">
       <!--
       function OrderSelect_onchange() {
          window.parent.frames("main").location.replace("about:blank");
          if(OrderSelect.selectedIndex>0) {
             window.setTimeout("OpenOrder()", 50); 
          }
       }
       function OpenOrder() {
          var order = OrderSelect.options(OrderSelect.selectedIndex).value;
          window.parent.frames("main").location.href=
             "http://localhost/exceltransform/getdata.aspx?orderid=" + order;
       }
       //-->
       </script>
       <body>
          <select id="OrderSelect" onchange="return OrderSelect_onchange()">
             <option value="0">Select an Order</option>
          </select>
       </body>
    </html>
    ???:: HTTP ?????? ??? XML ???????? ?? ??? ??? header.htm ?? ??? ???? ??? ?????? ???? ??? ???? ?? ??? header.htm ??? ?????? ???? XML. ??? ?? header.htm ??????? ????, ????????? ???? ?? ?? ??? ?????? ??; ??? ?????? ???? ??????? ?? ??????? ??? ???? ?????? ??, ?? ??????? ?? ??? ????????? ?????? ??????? ??? ??????? ?????? ???? ?? ?????

  10. ????? ????????????????? ??,HTML ????? ?????, ????? ????????????????????, Default.htm ???? ???, ?? ???? ???OK. ?? ???? ??? ???, ????? ????????:???????? ??????, ?? ???? ???OK.
  11. ????? ????????????? ??,HTML ?????.
  12. Frameset.htm, ??? ??? ????src, ????????????????????? ????? ??? ????? ?? ??? ?? ??? ???:
    <frame name="header" src="http://localhost/exceltransform/getdata.aspx" scrolling="yes" noresize>
  13. ?????? Explorer ???, ???? ?????Default.htm?? ????-????? ????, ?? ???? ???????? ??????? ?? ??? ??? ??? ????.
  14. ????? ?? ??????? ???? ?? ???, ????? ????? ?? ???? ????:
    1. ????? ???????? ???????? ??,??????? ?? ???? ??????? ????. ?????-???? ???? ???? IDs ?? ???? ??? ????? ??? ????? ??? ?? ??? ??????? ??? ???????? ????? ???
    2. ?????-???? ???? ??? ?? ???? ?? ???? ID ?? ??? ?????
    3. XML ????? ?????? ??? ????? ???? ?? ?? ?? ???? ????? XML ?? ?? ?? ???????? ??DataSet??GetdataHTTP ?????? ???? ?????? ?? ?????? ????? ??? ???
    4. ???????? ?? ??????? ???? ?? ??? ?????-???? ???? ?? ???????? ???? IDs ?? ??? ?????
    5. ?? ?? ??? ????????? ?? ??????? ???? ?????? ?? ???, Microsoft Internet Explorer ?? ???? ???????

Excel XML ???? ?? ??? DataSet transform

?? ?????? ??? ?? ??? transform ???? ?? ??? ???????? ???DataSetExcel ??? ?????????
  1. ???? ?????? ??? ???? ?? ExcelTransform ??? ????????? ??????
  2. ????? ????????????????? ??,?? ???? ??? ?????, ????? ????XSLT ????????????, ????????? Transform.xslt ???, ?? ???? ???OK.
  3. Transform.xslt ?? ??????? ?? ????? ?? ???????????? ????:
    <xsl:stylesheet version="1.0"
        xmlns="urn:schemas-microsoft-com:office:spreadsheet"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    	xmlns:user="urn:my-scripts"
    	xmlns:o="urn:schemas-microsoft-com:office:office"
    	xmlns:x="urn:schemas-microsoft-com:office:excel"
    	xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" >   
    
    <xsl:template match="Order">
    
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:o="urn:schemas-microsoft-com:office:office"
     xmlns:x="urn:schemas-microsoft-com:office:excel"
     xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:html="http://www.w3.org/TR/REC-html40">
    
     <Styles>
      <Style ss:ID="Default" ss:Name="Normal">
       <Alignment ss:Vertical="Bottom"/>
       <Borders/>
       <Font/>
       <Interior/>
       <NumberFormat/>
       <Protection/>
      </Style>
      <Style ss:ID="s21">
       <Font ss:Bold="1"/>
       <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
      </Style>
      <Style ss:ID="s22">
       <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
       <Font ss:Bold="1"/>
       <Interior ss:Color="#99CCFF" ss:Pattern="Solid"/>
      </Style>
      <Style ss:ID="s23" ss:Name="Currency">
       <NumberFormat
        ss:Format="_(&quot;$&quot;* #,##0.00_);_(&quot;$&quot;* \(#,##0.00\);_(&quot;$&quot;* &quot;-&quot;??_);_(@_)"/>
      </Style>
      <Style ss:ID="s24">
       <NumberFormat ss:Format="_(* #,##0.00_);_(* \(#,##0.00\);_(* &quot;-&quot;??_);_(@_)"/>
      </Style>
      <Style ss:ID="s25">
       <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
      </Style>
     </Styles>
    
     <Worksheet>
     <xsl:attribute name="ss:Name">
       <xsl:value-of select='concat("Order #", Customer/OrderID)'/>
     </xsl:attribute>
      <Table ss:ExpandedColumnCount="3">
      <xsl:attribute name="ss:ExpandedRowCount" >
    	<xsl:value-of select="count(Items)+10"/>
      </xsl:attribute>
    
       <Column ss:AutoFitWidth="0" ss:Width="150"/>
       <Column ss:AutoFitWidth="0" ss:Width="100"/>
       <Column ss:AutoFitWidth="0" ss:Width="75"/>
       
       <xsl:apply-templates select="Customer"/>
    
       <Row>
        <Cell ss:StyleID="s21"><Data ss:Type="String">Item</Data></Cell>
        <Cell ss:StyleID="s21"><Data ss:Type="String">Quantity</Data></Cell>
        <Cell ss:StyleID="s21"><Data ss:Type="String">Total</Data></Cell>
       </Row>
    
       <xsl:apply-templates select="Items"/>
       
       <Row>
        <Cell ss:Index="2"><Data ss:Type="String">Subtotal</Data></Cell>
        <Cell ss:StyleID="s23" ss:Formula="=SUM(R8C:R[-1]C)"/>
       </Row>
       <Row>
        <Cell ss:Index="2"><Data ss:Type="String">Freight</Data></Cell>
        <Cell ss:StyleID="s23"><Data ss:Type="Number"><xsl:value-of select="Customer/Freight"/></Data></Cell>
       </Row>
       <Row>
        <Cell ss:Index="2"><Data ss:Type="String">Total</Data></Cell>
        <Cell ss:StyleID="s23" ss:Formula="=R[-2]C+R[-1]C"/>
       </Row>
      </Table>
     </Worksheet>
    </Workbook>
    
    </xsl:template>
    
    <xsl:template match="Customer">
       <Row>
        <Cell><Data ss:Type="String"><xsl:value-of select="CompanyName"/></Data></Cell>
       </Row>
       <Row>
        <Cell><Data ss:Type="String"><xsl:value-of select="Address"/></Data></Cell>
       </Row>
       <Row>
        <Cell><Data ss:Type="String"><xsl:value-of select='concat(City, ", ", Region, " ", PostalCode)'/></Data></Cell>
       </Row>
       <Row>
        <Cell><Data ss:Type="String"><xsl:value-of select="Country"/></Data></Cell>
       </Row>
       <Row ss:Index="6">
        <Cell ss:MergeAcross="2" ss:StyleID="s22">
         <Data ss:Type="String">Order #<xsl:value-of select="OrderID"/></Data>
        </Cell>
       </Row>   
    </xsl:template>
    
    <xsl:template match="Items">
       <Row>
        <Cell><Data ss:Type="String"><xsl:value-of select="ProductName"/></Data></Cell>
        <Cell ss:StyleID="s25"><Data ss:Type="Number"><xsl:value-of select="Quantity"/></Data></Cell>
        <Cell ss:StyleID="s24"><Data ss:Type="Number"><xsl:value-of select="ItemTotal"/></Data></Cell>
       </Row>
    </xsl:template>
    
    </xsl:stylesheet>
  4. ???Getdata.VB, ?????SendResults????? ?? ??? ????? ????:
    Private Sub SendResults(ByVal context As HttpContext, ByVal ds As DataSet)
        Dim sOrderID As String = ds.Tables(0).Rows(0).Item(0)
    
        'Set up the response for Excel.
        context.Response.ContentType = "application/vnd.ms-excel"
        context.Response.Charset = ""
    
        'Transform the DataSet XML using transform.xslt 
        'and return the results to the client in Response.Outputstream.
        Dim tw As XmlTextWriter
        Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
        Dim xslTran As XslTransform = New XslTransform()
        xslTran.Load(context.Server.MapPath("transform.xslt"))
        xslTran.Transform(xmlDoc, Nothing, context.Response.OutputStream)
        context.Response.End()
    End Sub
  5. ????? ?? ??????? ???? ?? ???, ????? ????? ?? ???? ????:
    1. ????? ???????? ???????? ??,??????? ?? ???? ??????? ????. ?????-???? ???? ???? IDs ?? ???? ??? ????? ??? ????? ??? ?? ??? ??????? ??? ???????? ????? ???
    2. ?????-???? ???? ??? ?? ???? ?? ???? ID ?? ??? ????? ?? ???DataSet????? ??? ?? ?? ???? ????????, ?? ?????????? ??? transformed XML ?? Excel ?? ??? ????????? ???? ???? ??? Excel ??? ???? ??????? ?? ???????? ??? ???
    3. ?? ?? ??? ????????? ?? ??????? ???? ?????? ?? ???, ?? Internet Explorer ?? ???? ???????

(????????) ????? ??? transformed XML ??????

????? ?????? ??? HTTP ?????? streams transformed XML ??????? ?? ???? ?????? ?? ??? ?? ???? ???DataSetXML ?? ???? ????? ??? ???????? ?? ?????? ??? ??? ???? ?? ???????? ???? ???? ???? ?? ??????? ???? ??? ?? ?????? ?? ?????? ?????? ?????? ??? ?? ???? ??? ?? ?? approach ?? ??????? ???? ?? ??? ????? ?? ????DataSetXML ?? transformed XML ?? ??????? ????????? ?? ??? ???

???:: ????? XML ???? ?? ??? ????????? ??????? ??? ?????? ??? ?? ???? ?? ???? ??????? ?? ??? ????????? ????? ?? ??? ????? ????? ??? demonstrated ?? ??? ????
  1. ASP.NET ?? ??? ??????? ?? ???? ????????? ??? ?????????:
    1. Windows Explorer ??????? ????..
    2. ??? ????????? ??????? ?? ?????? ?????? ??????? ?? ??? C:\Inetpub\Wwwroot\ExcelTransform ???
    3. ????-????? ????ExcelTransform???????, ?? ???? ??????.
    4. ????? ?????????????? ??,add.
    5. ?? ????????? ??? ???? ?? ??? ???????? ??? ???? ????, ???????? ?? ??? ???? ????YourComputerName\aspnet?? ????-????? ????, ?? ???? ???OK.
    6. ????? ?????????????? ?? ??? ???? ?? ??? ????? ?????????? ??? ???? ?? ?????? ???? ?? ???YourComputerName\aspnet ????, ?? ???? ???OK.
  2. ???Getdata.VB, ?????SendResults????? ?? ??? ????? ????:
    Private Sub SendResults(ByVal context As HttpContext, ByVal ds As DataSet)
        Dim sOrderID As String = ds.Tables(0).Rows(0).Item(0)
    
        'First, save the XML representation of the DataSet in a file
        'and add a processing instruction to the XML so that it can be
        'transformed client-side.
        Dim tw As XmlTextWriter
        tw = New XmlTextWriter(context.Server.MapPath("order" & sOrderID & ".xml"), System.Text.Encoding.UTF8)
        tw.Formatting = Formatting.Indented
        tw.Indentation = 3
        tw.WriteStartDocument()
        tw.WriteProcessingInstruction("xml-stylesheet", _
    	"type='text/xsl' href='http://localhost/ExcelTransform/transform.xslt'")
        ds.WriteXml(tw)
        tw.Close()
    
        'Second, transform the DataSet XML and save it to a file.
        Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
        Dim xslTran As XslTransform = New XslTransform()
        xslTran.Load(context.Server.MapPath("transform.xslt"))
        tw = New XmlTextWriter(context.Server.MapPath("order" & sOrderID & ".xls"), System.Text.Encoding.UTF8)
        tw.Formatting = Formatting.Indented
        tw.Indentation = 3
        tw.WriteStartDocument()
        xslTran.Transform(xmlDoc, Nothing, tw)
        tw.Close()
    
        'Optionally, redirect to the saved transformation.
        context.Response.Redirect( _
    		"http://localhost/ExcelTransform/order" & sOrderID & ".xls")
        context.Response.End()
    End Sub
  3. ????? ?? ??????? ???? ?? ???, ????? ????? ?? ???? ????:
    1. ????? ???????? ???????? ??,??????? ?? ???? ??????? ????.
    2. ?????-???? ???? ??? ??? ???? ?? ??? ????? Transformed XML Excel ??? ????? ?????? ??? ????? ???? ???
    3. ?????? DataSet XML, C:\Inetpub\Wwwroot\ExcelTransform\order ?? ???? ????NNNNN.xml. ?? XML ?? ???? ??? ?????? ?? Excel ??? ??? ???? ???? ??? ?? Order.xml Excel ??? ????? ???, ?? ?? stylesheet ?? ???? ???? ?? ??? ??? ????
    4. ?????????? XML, C:\Inetpub\Wwwroot\ExcelTransform\order ?? ???? ????NNNNN.xls. You can open the XML in any text editor or in Excel.

??????????

When you build your own XSLT file for Excel, first create a workbook template in Excel that contains the formatting and formulas that you need, and then save the workbook in Spreadsheet XML. You can then modify the XML so that it contains the XSL expressions and elements that you need to correctly transform yourDataSetXML. When you modify the XML that you saved from Excel, note the following:
  • The cells in a worksheet are represented by a<table></table>element in XML. The<table></table>has two attributes,ss:ExpandedColumnCount, ??ss:ExpandedRowCount, ?? ????????? ??? ?????? ?? ?????????? ??? ????? ??? ???? ??? (??????, "????? ??????")? ??? ????????????? ??? ????????? ?? ????? (?? ?????) ?? ?? ??? ?????? ??, ???????? ?? ????? ?? ????????? ???? ?? ???ss:ExpandedRowCount??? ???????transform.XSLT??? ?? ?????? ?? ??? ??? ????? ?? ??????DataSetXML.
  • ?????? ??? ??????? ?? ???????? ???? ???? ??? RC ?????? ??? ?? A1 ?????? ??? ???? ???
  • ???????? ???? ??????? ?????? ???? ?? ??? ???? ?????????? ?? ?????? ?? ???? ???? ?? ???? ???? ?? ?? ?? ??? ??????? ??? ???????? ?? ???? ???<style></style>?????????? XML ?????

??????

???:.NET Framework 1.1 ?? ????? ???? ???? ???????? ?? ??? ??? ?? ???????? ?? ??????? ???? ?????XslTransform???? .NET Framework 1.0 ?? .NET Framework 1.1 ?? ??? ??? ?????? ?? ???, several (???? ??????? ?? ????? ???? ???? ?? ?? ?? ???? ???) ??? ?? ???????????? ??????? ?? overloaded ??????? ??? ???? ???????? .NET Framework 1.1 ?? ??? ??????? ?? ??? ??? ?? ???? ??? ???????? ??????? ?? ???XslTransform.Transform???? ?? ???, ????? Microsoft ?????? ??????? (MSDN) ??? ???? ?? ????:
(vs.71) http://msdn2.Microsoft.com/en-us/library/SYSTEM.XML.XSL.xsltransform.transform .aspx (http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltransform.transform(vs.71).aspx)
???????? ??????? ?? ???, ????? ???? ???????? ?? ????? ?? ?????? ?? Microsoft ???????? ??? ?????::
288215  (http://support.microsoft.com/kb/288215/ ) Microsoft Excel 2002 ?? XML
307021  (http://support.microsoft.com/kb/307021/ ) Microsoft Excel 2002 ?? ??? .NET ????? ?? ????? ?? XML ???? ??????????? ???? ?? ??? ???? ????
306022  (http://support.microsoft.com/kb/306022/ ) ??? Excel ????????????? ?? ??? Visual Basic .NET ?? ????? ?? ???? ??????????? ???? ?? ??? ???? ????
307985  (http://support.microsoft.com/kb/307985/ ) ASP.NET HTTP ??????? ?? HTTP handlers ????????? ??????
308000  (http://support.microsoft.com/kb/308000/ ) Visual Basic .NET ?? ????? ?? ???? asp.NET HTTP ??????? ?? ????? ?? ??? ???? ????
311461  (http://support.microsoft.com/kb/311461/ ) XML ?? ??? ??????? ??????? (RTF) Microsoft Word 2002 ?? ??? transform ???? ?? ??? asp.NET ?? Visual Basic .NET ?? ????? ???? ????
285891  (http://support.microsoft.com/kb/285891/ ) Excel 2002 ?? ??? ?? XML ?????????? ????? ?? ??? Visual Basic ?? ASP ?? ????? ???? ????

???? ???? ???? ??:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
??????: 
kbhttphandlers kbgrpdso kbhowtomaster kbmt KB319180 KbMthi
???? ?????? ???????????? ?????? ????????
??????????: ?? ???? ?? ???? ??????? ?? ????? ?? Microsoft ????-?????? ?????????? ?????? ?????? ???? ??? ??. Microsoft ???? ??? ????-???????? ?? ????-???????? ????? ?????? ?? ???? ???????? ???? ?? ???? ????? ????? ??? ?? ??? ?????? ?? ???? ???? ???? ??? ????? ??. ???????, ????-???????? ???? ????? ???? ???? ???? ???. ?????, ????????, ?????-???? ?? ??????? ?? ???????? ?? ???? ???, ???? ?? ??? ?????? ???? ???? ??? ????? ??? ?? ???? ??. Microsoft ??????? ??? ???? ?? ?????? ?? ??????????, ????????? ?? ??? ?????? ?? ???? ????? ?? ???? ???????? ?? ??? ???? ????? ?? ??? ????????? ???? ??. Microsoft ????-?????? ?????????? ?? ????? ?????? ?? ?? ??? ??.
?????????? ?? ??????? ????????? ??????? ??:319180  (http://support.microsoft.com/kb/319180/en-us/ )