Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2010, 21:14
franciscomusico
 
Fecha de Ingreso: enero-2009
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 1
duda con crear un excel

hola a todos

estoy buscando una forma de,a traves de codigo, poder crear un excel y poder descargarlo

Esto en un mismo boton. Tengo un codigo que me crea un excel a partir de un template que tengo guardado, pero al momento de intentar descargar el archivo este me da un error.

Agradeceria ayuda por favor.

Adjunto el codigo, espero que les pueda ayudar a poder iluminarme con una solucion


Código:
        Dim FileToCopy As String
        Dim NewCopy As String
        Dim nombre As String
        Dim Libro As Excel.Workbook ' Libro de trabajo
        Dim Hoja As New Excel.Worksheet
        Dim MiClase As New ClassOrganizacion

        Dim dv As New Data.DataView
        dv = MiClase.TraeOrganizaciones(chkDesabilitados.Checked)



        Try
            If Not (Session.Item("filtro") = Nothing) Then
                dv.RowFilter = Session.Item("filtro").ToString
            End If
        Catch
        End Try
        Dim row As Integer

        If dv.Count > 0 Then
            nombre = "Folderpublic" & Now.Year & Now.Month & Now.Day & Now.Hour & Now.Minute & Now.Second & ".xls"
            Try
                FileToCopy = rutaExcel & "plantillas\" & "Organizaciones.xls"
                NewCopy = rutaExcel & "impresos\Org_" & nombre
                System.IO.File.Copy(FileToCopy, NewCopy)

                oApp = New Excel.Application
                Libro = oApp.Workbooks.Open(NewCopy)
                Hoja = CType(Libro.Sheets("Hoja1"), Excel.Worksheet)

                Hoja.Cells(2, 2) = "Listado de Organizaciones"

                Dim fila As Integer = 5

                For row = 0 To dv.Count - 1
                    Hoja.Cells(fila + row, 1) = dv.Item(row).Item("run")
                    Hoja.Cells(fila + row, 2) = dv.Item(row).Item("nombre")
                    Hoja.Cells(fila + row, 3) = dv.Item(row).Item("mail")
                    Hoja.Cells(fila + row, 4) = dv.Item(row).Item("FONO_CONTACTO")
                    Hoja.Cells(fila + row, 5) = dv.Item(row).Item("rubro")
                    Hoja.Cells(fila + row, 6) = dv.Item(row).Item("direccion")
                    Hoja.Cells(fila + row, 7) = dv.Item(row).Item("estado")
                    Hoja.Cells(fila + row, 8) = dv.Item(row).Item("habilitado")
                Next


            Catch ex As Exception

            Finally
                'oApp.Visible = True
                Libro.Save()

                Hoja = Nothing
                Libro.Close(False)
                Libro = Nothing

                oApp.Quit()
                oApp = Nothing

                Response.AddHeader("Content-Disposition", "attachment; filename=" & NewCopy)
                Response.WriteFile(NewCopy)
            End Try


        Else
            Me.LbMsjs.Visible = True
        End If
Agradesco desde ya sus sugerencias e ideas
__________________
Francisco Birrer
Arquitecto de Software e-process
http://www.universite.cl