Originariamente inviato da orcim
Allora posto il codice:

Pagina ASP:

codice:
<% 

 Session.Timeout = 200 
 Response.Buffer = True 
  
 filename = "_output.xml"
 
 Set fso = Server.CreateObject("Scripting.FileSystemObject") 
    if fso.FileExists(Server.MapPath("_XML/" & filename & "")) then 
    fso.DeleteFile(Server.MapPath("_XML/" & filename & "")) 
 end if 

 Set fso = Nothing 

 Set xmlDoc = CreateObject("MSXML2.DOMDocument.4.0")
 Set xslDoc = CreateObject("MSXML2.DOMDocument.4.0")

%>



<%


   sql = "SELECT * FROM tbl_c" 
            
   Set Rs = CreateObject("ADODB.Recordset")
   Rs.Open SQL, objconn
      
   if not Rs.eof then 
   
   Rs.Save xmlDoc, 1 
   xmlDoc.Save Server.MapPath("_XML/" & filename & "")
   
   end if

   Rs.Close() 
   Set Rs = Nothing 

%>

<%

 Set oDOM = CreateObject("MSXML2.DOMDocument.4.0")
 oDOM.async = False 
 
 oDOM.Load Server.Mappath("_XML/" & filename & "")
  
 Set oXSL = CreateObject("MSXML2.DOMDocument.4.0") 
 oXSL.async = False 
 
 oXSL.Load Server.Mappath("/_inc/Trasform_csv.xsl") 
 
 strTransform = oDOM.transformNode(oXSL) 
 
 Set fso = CreateObject("Scripting.FileSystemObject")
  
 strPath = Server.Mappath("_XML/_output.xls") 
 Session("FileName") = Server.Mappath("_XML/_output.xls") 
   
 Set file = fso.opentextfile(strPath, 2, True)
 file.write strTransform

 file.Close() 
 Set file = Nothing
  
 Set fso = Nothing
                        
 Set oDOM = Nothing 
 Set oXML = Nothing 
 Set oXSL = Nothing 
   
%>

File XSL per la trasformazione da XML in XLS:
codice:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
	<xsl:output omit-xml-declaration="yes"/>
	<xsl:template match="/">
		
		<xsl:for-each select="/xml/s:Schema/s:ElementType/s:AttributeType">
			<xsl:value-of select="@name"/>
			<xsl:choose>
				<xsl:when test="position()!=last()">
					<xsl:text>&#x09;</xsl:text>
				</xsl:when>
				<xsl:otherwise>
					<xsl:text>&#xa;</xsl:text>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:for-each>
		
		<xsl:for-each select="/xml/rs:data/z:row">
      <xsl:variable name="row" select="."/>
      
			<xsl:for-each select="/xml/s:Schema/s:ElementType/s:AttributeType">
			   
			  <xsl:variable name="columnName" select="@name"/>
				
				<xsl:value-of select="$row/@*[name()=$columnName]"/>
				<xsl:if test="position()!=last()">
					<xsl:text>&#x09;</xsl:text>
				</xsl:if>
	    </xsl:for-each>
			<xsl:text>&#xa;</xsl:text>
	  </xsl:for-each>
	</xsl:template>
</xsl:stylesheet>