Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/10/2007, 00:29
Avatar de Shiryu_Libra
Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 1 mes
Puntos: 88
Re: exportar datos de SQL A EXCEL

extraño eso, funciona bien conmigo, probablemente permisos de escritura....

bueno, aki esta otra forma de realizarlo
claseGenxls.asp
Código PHP:
<&#37;
  
Option Explicit

  
Class ExcelGen

    
Private objSpreadsheet
    
Private iColOffset
    
Private iRowOffset

    Sub Class_Initialize
()
      
Set objSpreadsheet Server.CreateObject("OWC.Spreadsheet")

      
iRowOffset 2
      iColOffset 
2
    End Sub

    Sub Class_Terminate
()
      
Set objSpreadsheet Nothing   'Clean up
    End Sub

    Public Property Let ColumnOffset(iColOff)
      If iColOff > 0 then
        iColOffset = iColOff
      Else
        iColOffset = 2
      End If
    End Property

    Public Property Let RowOffset(iRowOff)
      If iRowOff > 0 then
        iRowOffset = iRowOff
      Else
        iRowOffset = 2
      End If
    End Property


    Sub GenerateWorksheet(objRS)

      '
Populates the Excel worksheet based on a Recordset's contents
      '
Start by displaying the titles
      
If objRS.EOF then Exit Sub

      Dim objField
iColiRow
      iCol 
iColOffset
      iRow 
iRowOffset

      
For Each objField in objRS.Fields
        objSpreadsheet
.Cells(iRowiCol).Value objField.Name
        iCol 
iCol 1
      Next 
'objField

      '
Display all of the data
      
Do While Not objRS.EOF
        iRow 
iRow 1
        iCol 
iColOffset

        
For Each objField in objRS.Fields
          
If IsNull(objField.Valuethen
            objSpreadsheet
.Cells(iRowiCol).Value ""
          
Else
            
objSpreadsheet.Cells(iRowiCol).Value objField.Value
          End 
If

          
iCol iCol 1
        Next 
'objField

        objRS.MoveNext     
      Loop

    End Sub    


    Function SaveWorksheet(strFileName)
      '
Save the worksheet to a specified filename
      On Error Resume Next
      Call objSpreadsheet
.ActiveSheet.Export(strFileName0)

      
SaveWorksheet = (Err.Number 0)
    
End Function

  
End Class
%> 
forma de llamarla
Código PHP:
<%'Vinculas el archivo arriba escrito%>
<!--#include virtual="claseGenxls.asp"-->
<%
 '
Creas tus conexiones a la base de datos
  Dim objRS
  Set objRS 
Server.CreateObject("ADODB.Recordset")
  
objRS.Open "SELECT * FROM titles""DSN=FooBar"

  
Dim objExcel
  Set objExcel 
= New ExcelGen

  objExcel
.RowOffset 4
  objExcel
.ColumnOffset 1

  objExcel
.GenerateWorksheet(objRS)

  
Nombre del Archivo
  xlsname
="foo.xls"
  
If objExcel.SaveWorksheet(Server.MapPath("& xlsname &")) then
    Response
.Write "Libro de Excel Guardado.  " _
                   
"<a href=""& xlsname &"">Descargar</a>"
  
Else
    
Response.Write "Error en la escritura del Archivo XLS!"
  
End If

  
Set objExcel Nothing

  objRS
.Close
  Set objRS 
Nothing
%> 
suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra