Exportar Excel a PDF

  • 6 Respuestas
  • 7367 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 128
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
  • Skype: randomsofthack
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email

Exportar Excel a PDF

  • en: Febrero 05, 2013, 02:21:48 pm
Expero que esta pequeña ayudita les pueda ser de mucha utilidad para la realización de Sistemas u otros proyectos que realizen.

Saludos.

Código: (vbnet) [Seleccionar]
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel

    Dim Obj_Excel As Excel.Application
    Dim Obj_Libro As Object
    Dim Obj_Hoja As Object
    Dim iCol As Long

    Dim excelWorkbook As Workbook = Nothing

    Dim paramExportFormat As XlFixedFormatType = _
        XlFixedFormatType.xlTypePDF
    Dim paramExportQuality As XlFixedFormatQuality = _
        XlFixedFormatQuality.xlQualityStandard
    Dim paramOpenAfterPublish As Boolean = False
    Dim paramIncludeDocProps As Boolean = True
    Dim paramIgnorePrintAreas As Boolean = True
    Dim paramFromPage As Object = Type.Missing
    Dim paramToPage As Object = Type.Missing

Public Function Exportar(ByVal Dirtd As String, ByVal Dirts As String)
        On Error GoTo Error_Handler

        Dim i As Integer
        Dim j As Integer

       'Colocar el cursor de espera mientras se exportan los datos
        Sistema.Cursor = Cursors.WaitCursor

        With Export.DataGridView1
            If .Rows.Count = 0 Then
                MsgBox("No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ")
            Else
                ' -- Crear nueva instancia de Excel   
                Obj_Excel = CreateObject("Excel.Application")
                ' -- Agregar nuevo libro
                Obj_Libro = Obj_Excel.Workbooks.Open(Filename:=Dirtd)

                excelWorkbook = Obj_Libro
                ' -- Referencia a la Hoja activa ( la que añade por defecto Excel )   
                Obj_Hoja = Obj_Excel.ActiveSheet

                iCol = 0
                ' --  Recorrer el Datagrid ( Las columnas )   
                For i = 0 To .Columns.Count - 1
                    ' -- Incrementar índice de columna   
                    iCol = iCol + 1
                    ' -- Obtener el caption de la columna   
                    Obj_Hoja.Cells(5, iCol) = .Columns(i).HeaderText
                    ' -- Recorrer las filas   
                    For j = 0 To .Rows.Count - 1
                        ' -- Asignar el valor a la celda del Excel
                        Obj_Hoja.Cells(j + 6, iCol) = .Rows(j).Cells(i).Value()
                    Next
                Next

                ' -- Hacer excel visible   
                Obj_Excel.Visible = False

                ' -- Opcional : colocar en negrita los enbezados en la hoja   
                With Obj_Hoja
                    .Rows(5).Font.Bold = True
                    ' -- Autoajustar las cabeceras   
                    .Columns("A:Z").AutoFit()
                End With

                'Convertir excel a pdf
                If Not excelWorkbook Is Nothing Then
                    excelWorkbook.ExportAsFixedFormat(paramExportFormat, Dirts, paramExportQuality, paramIncludeDocProps, paramIgnorePrintAreas, paramFromPage, paramToPage, paramOpenAfterPublish)
                End If

                With Obj_Excel
                    'Cierra el documento abierto ( True es para guardar los cambios )
                    .ActiveWorkbook.Close(SaveChanges:=False)
                    'Destruye las variables de objeto y cierra la aplicación de word   
                    .Quit()
                End With
            End If
        End With

        ' -- Eliminar las variables de objeto excel
        Obj_Hoja = Nothing
        Obj_Libro = Nothing
        Obj_Excel = Nothing

        Sistema.Cursor = Cursors.Default

        Return Obj_Hoja
        Exit Function

Error_Handler:

        MsgBox(Err.Description, vbCritical, "Sistema de Kardex")
        On Error Resume Next

        Obj_Hoja = Nothing
        Obj_Libro = Nothing
        Obj_Excel = Nothing
        Sistema.Cursor = Cursors.Default
    End Function
« Última modificación: Octubre 21, 2013, 11:16:29 pm por Expermicid »
El Lenguaje es la Ciudad para cuya Edificación cada Ser Humano ha Aportado una Piedra

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5678
  • Actividad:
    20%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Re:Exportar Excel a PDF

  • en: Febrero 05, 2013, 02:23:18 pm
Buenisimo bro! Pero esto es VB.NET o C#?

Saludos!


Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 128
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
  • Skype: randomsofthack
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email

Re:Exportar Excel a PDF

  • en: Febrero 05, 2013, 02:32:09 pm
Esta en VB.NET brother 8) creo que la falta de corchetes
Código: [Seleccionar]
{ }, punto y goma
Código: [Seleccionar]
; lo delata no? :)  :D:D
El Lenguaje es la Ciudad para cuya Edificación cada Ser Humano ha Aportado una Piedra

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5678
  • Actividad:
    20%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Re:Exportar Excel a PDF

  • en: Febrero 05, 2013, 02:34:06 pm
No conozco mucho a ese lenguaje, pero gracias por el dato! lo tendre en cuenta!
Andaba buscando algo similar pero en C#, pero no precisamente desde excel, sino desde el mismo formulario del programa.
Por ejemplo, si hay un Grid, pasar ese grid a PDF


Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 128
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
  • Skype: randomsofthack
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email

Re:Exportar Excel a PDF

  • en: Febrero 05, 2013, 02:49:17 pm
xD bueno amigo, en esta parte del code especifica un formulario de nombre Export y el DataGridView1, el cual indica que si el DataGridView1 esta vacio no exportara nada y te mostrará un mensaje, caso contrario el contenido del DataGridView1 se exportará primero a un Excel el cual luego será guardado como PDF.

Citar
With Export.DataGridView1
            If .Rows.Count = 0 Then
                MsgBox("No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ")
            Else
                ' -- Crear nueva instancia de Excel 
                Obj_Excel = CreateObject("Excel.Application")
                ' -- Agregar nuevo libro
                Obj_Libro = Obj_Excel.Workbooks.Open(Filename:=Dirtd)
 
                excelWorkbook = Obj_Libro
                ' -- Referencia a la Hoja activa ( la que añade por defecto Excel ) 
                Obj_Hoja = Obj_Excel.ActiveSheet
 
                iCol = 0
                ' --  Recorrer el Datagrid ( Las columnas ) 
                For i = 0 To .Columns.Count - 1
                    ' -- Incrementar índice de columna 
                    iCol = iCol + 1
                    ' -- Obtener el caption de la columna 
                    Obj_Hoja.Cells(5, iCol) = .Columns(i).HeaderText
                    ' -- Recorrer las filas 
                    For j = 0 To .Rows.Count - 1
                        ' -- Asignar el valor a la celda del Excel
                        Obj_Hoja.Cells(j + 6, iCol) = .Rows(j).Cells(i).Value()
                    Next
                Next
End With
El Lenguaje es la Ciudad para cuya Edificación cada Ser Humano ha Aportado una Piedra

Desconectado @NetFcruz

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Exportar Excel a PDF

  • en: Marzo 12, 2013, 05:07:04 pm
Hay un converter de vb.net a c# online.
Muy buen aporte.
Saludos.
System32
XD

Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 128
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
  • Skype: randomsofthack
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email

Re:Exportar Excel a PDF

  • en: Marzo 12, 2013, 05:40:22 pm
Hay un converter de vb.net a c# online.

Usa el mismo code, la diferencia a C# no es mucha
El Lenguaje es la Ciudad para cuya Edificación cada Ser Humano ha Aportado una Piedra