comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Exportar Excel a PDF

  • 6 Respuestas
  • 5317 Vistas

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

Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 126
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email
  • Skype: randomsofthack
« 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: vb.net
  1. Imports Microsoft.Office.Interop
  2. Imports Microsoft.Office.Interop.Excel
  3.  
  4.     Dim Obj_Excel As Excel.Application
  5.     Dim Obj_Libro As Object
  6.     Dim Obj_Hoja As Object
  7.     Dim iCol As Long
  8.  
  9.     Dim excelWorkbook As Workbook = Nothing
  10.  
  11.     Dim paramExportFormat As XlFixedFormatType = _
  12.         XlFixedFormatType.xlTypePDF
  13.     Dim paramExportQuality As XlFixedFormatQuality = _
  14.         XlFixedFormatQuality.xlQualityStandard
  15.     Dim paramOpenAfterPublish As Boolean = False
  16.     Dim paramIncludeDocProps As Boolean = True
  17.     Dim paramIgnorePrintAreas As Boolean = True
  18.     Dim paramFromPage As Object = Type.Missing
  19.     Dim paramToPage As Object = Type.Missing
  20.  
  21. Public Function Exportar(ByVal Dirtd As String, ByVal Dirts As String)
  22.         On Error GoTo Error_Handler
  23.  
  24.         Dim i As Integer
  25.         Dim j As Integer
  26.  
  27.        'Colocar el cursor de espera mientras se exportan los datos
  28.         Sistema.Cursor = Cursors.WaitCursor
  29.  
  30.         With Export.DataGridView1
  31.             If .Rows.Count = 0 Then
  32.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta("No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ")
  33.             Else
  34.                 ' -- Crear nueva instancia de Excel  
  35.                 Obj_Excel = No tienes permisos para ver links. Registrate o Entra con tu cuenta("Excel.Application")
  36.                 ' -- Agregar nuevo libro
  37.                 Obj_Libro = Obj_Excel.Workbooks.Open(Filename:=Dirtd)
  38.  
  39.                 excelWorkbook = Obj_Libro
  40.                 ' -- Referencia a la Hoja activa ( la que añade por defecto Excel )  
  41.                 Obj_Hoja = Obj_Excel.ActiveSheet
  42.  
  43.                 iCol = 0
  44.                 ' --  Recorrer el Datagrid ( Las columnas )  
  45.                 For i = 0 To .Columns.Count - 1
  46.                     ' -- Incrementar índice de columna  
  47.                     iCol = iCol + 1
  48.                     ' -- Obtener el caption de la columna  
  49.                     Obj_Hoja.Cells(5, iCol) = .Columns(i).HeaderText
  50.                     ' -- Recorrer las filas  
  51.                     For j = 0 To .Rows.Count - 1
  52.                         ' -- Asignar el valor a la celda del Excel
  53.                         Obj_Hoja.Cells(j + 6, iCol) = .Rows(j).Cells(i).Value()
  54.                     Next
  55.                 Next
  56.  
  57.                 ' -- Hacer excel visible  
  58.                 Obj_Excel.Visible = False
  59.  
  60.                 ' -- Opcional : colocar en negrita los enbezados en la hoja  
  61.                 With Obj_Hoja
  62.                     .Rows(5).Font.Bold = True
  63.                     ' -- Autoajustar las cabeceras  
  64.                     .Columns("A:Z").AutoFit()
  65.                 End With
  66.  
  67.                 'Convertir excel a pdf
  68.                 If Not excelWorkbook Is Nothing Then
  69.                     excelWorkbook.ExportAsFixedFormat(paramExportFormat, Dirts, paramExportQuality, paramIncludeDocProps, paramIgnorePrintAreas, paramFromPage, paramToPage, paramOpenAfterPublish)
  70.                 End If
  71.  
  72.                 With Obj_Excel
  73.                     'Cierra el documento abierto ( True es para guardar los cambios )
  74.                     .ActiveWorkbook.No tienes permisos para ver links. Registrate o Entra con tu cuenta(SaveChanges:=False)
  75.                     'Destruye las variables de objeto y cierra la aplicación de word  
  76.                     .Quit()
  77.                 End With
  78.             End If
  79.         End With
  80.  
  81.         ' -- Eliminar las variables de objeto excel
  82.         Obj_Hoja = Nothing
  83.         Obj_Libro = Nothing
  84.         Obj_Excel = Nothing
  85.  
  86.         Sistema.Cursor = Cursors.Default
  87.  
  88.         Return Obj_Hoja
  89.         Exit Function
  90.  
  91. Error_Handler:
  92.  
  93.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(Err.Description, vbCritical, "Sistema de Kardex")
  94.         On Error Resume Next
  95.  
  96.         Obj_Hoja = Nothing
  97.         Obj_Libro = Nothing
  98.         Obj_Excel = Nothing
  99.         Sistema.Cursor = Cursors.Default
  100.     End Function
  101.  
« Ú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: 5388
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Febrero 05, 2013, 02:23:18 pm »
Buenisimo bro! Pero esto es VB.NET o C#?

Saludos!


Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 126
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email
  • Skype: randomsofthack
« Respuesta #2 en: Febrero 05, 2013, 02:32:09 pm »
Esta en VB.NET brother 8) creo que la falta de corchetes
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
{ }, punto y goma
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
; 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: 5388
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #3 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: 126
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email
  • Skype: randomsofthack
« Respuesta #4 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
« Respuesta #5 en: Marzo 12, 2013, 05:07:04 pm »
Hay un converter de vb.net a c# online.
Muy buen aporte.
Saludos.
System32
XD
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado RandomSoft

  • *
  • Underc0der
  • Mensajes: 126
  • Actividad:
    0%
  • Reputación 0
  • using Underc0de;
    • Ver Perfil
    • Marketing Online | Diseño Web | Hosting Profesional - GlobalPer
    • Email
  • Skype: randomsofthack
« Respuesta #6 en: Marzo 12, 2013, 05:40:22 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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

 

¿Te gustó el post? COMPARTILO!



Imprimir Documento Excel

Iniciado por RandomSoft

Respuestas: 1
Vistas: 2946
Último mensaje Marzo 12, 2013, 05:02:58 pm
por @NetFcruz