-
+
-
-
-
-
-
+
+
+
+
+
+ Mes inicial
+
+
+
+
+
+
+
+ Mes final
+
+
+
+
+
+
+
+ RFC
+
+
+
+
+
+
+
+ CURP
+
+
+
+
+
+
+
+ Apellido
+ paterno
+
+
+
+
+
+
+
+ Apellido
+ materno
+
+
+
+
+
+
+
+ Nombre
+
+
+
+
+
+
+
+ Área
+ geográfica
+
+
+
+
+
+
+
+ Si el patrón
+ realizó
+ cálculo anual
+
+
+
+
+
+
+
+ Tarifa
+ utilizada del
+ ejercicio
+
+
+
+
+
+
+
+ Tarifa 1991
+
+
+
+
+
+
+
+ Proporción
+ del subsidio
+
+
+
+
+
+
+
+ Sindicalizado
+
+
+
+
+
+
+
+ Si es
+ asimilado a
+ salarios
+
+
+
+
+
+
+
+ Entidad
+ Federativa
+
+
+
+
+
+
+
+ RFC otros
+ patrones1
+
+
+
+
+
+
+
+ RFC otros
+ patrones2
+
+
+
+
+
+
+
+ RFC otros
+ patrones3
+
+
+
+
+
+
+
+ RFC otros
+ patrones4
+
+
+
+
+
+
+
+ RFC otros
+ patrones5
+
+
+
+
+
+
+
+ RFC otros
+ patrones6
+
+
+
+
+
+
+
+ RFC otros
+ patrones7
+
+
+
+
+
+
+
+ RFC otros
+ patrones8
+
+
+
+
+
+
+
+ RFC otros
+ patrones9
+
+
+
+
+
+
+
+ RFC otros
+ patrones10
+
+
+
+
+
+
+
+ Pagos por
+ separación
+
+
+
+
+
+
+
+ Asimilados a
+ salarios
+
+
+
+
+
+
+
+ Pagos del
+ patrón
+
+ efectuados
+ a sus trab
+
+
+
+
+
+
+
+ <%--
+ CvePersonal
+
+
+ --%>
+
+
+ Ingresos
+ totales por
+ pago en
+ parcialidades
+
+
+
+
+
+
+
+ Monto
+ diario
+ percibido
+ por jubilaciones
+
+
+
+
+
+
+
+ Cantidad
+ que se
+ hubiera
+ percibido
+
+
+
+
+
+
+
+ Monto total
+ del pago en
+ una sola
+ exhibición
+
+
+
+
+
+
+
+ Días
+
+
+
+
+
+
+
+ Ingresos
+ exentos
+
+
+
+
+
+
+
+ Ingresos
+ gravables
+
+
+
+
+
+
+
+ Ingresos
+ acumulables
+
+
+
+
+
+
+
+ Ingresos no
+ acumulables
+
+
+
+
+
+
+
+ Impuesto
+ retenido
+
+
+
+
+
+
+
+ Monto total
+ pagado de
+ otros pagos
+
+
+
+
+
+
+
+ Número de
+ años de
+ servicio
+
+
+
+
+
+
+
+ Ingresos
+ exentos
+
+
+
+
+
+
+
+ Ingresos
+ gravados
+
+
+
+
+
+
+
+ Ingresos
+ acumulables (mes)
+
+
+
+
+
+
+
+ Impuesto
+ correspondiente(mes)
+
+
+
+
+
+
+
+ Ingresos no
+ acumulables
+
+
+
+
+
+
+
+ Impuesto
+ retenido
+
+
+
+
+
+
+
+
+
+ Becas para trabajadores (Gravado)
+
+
+
+
+
+
+
+ Becas para trabajadores (Exento)
+
+
+
+
+
+
+
+
+
+ Sueldos,
+ salarios,
+ rayas y
+ jornales (Gravado)
+
+
+
+
+
+
+
+ Sueldos,
+ salarios,
+ rayas y
+ jornales (Exento)
+
+
+
+
+
+
+
+ Gratificación anual (Gravado)
+
+
+
+
+
+
+
+ Gratificación
+ anual (Exento)
+
+
+
+
+
+
+
+ Viáticos y
+ gastos de
+ viaje (Gravado)
+
+
+
+
+
+
+
+ Viáticos y
+ gastos de
+ viaje (Exento)
+
+
+
+
+
+
+
+ Tiempo
+ extraordinario
+ (Gravado)
+
+
+
+
+
+
+
+ Tiempo
+ extraordinario
+ (Exento)
+
+
+
+
+
+
+
+ Prima
+ vacacional
+ (Gravado)
+
+
+
+
+
+
+
+ Prima
+ vacacional
+ (Exento)
+
+
+
+
+
+
+
+ Prima
+ dominical
+ (Gravado)
+
+
+
+
+
+
+
+ Prima
+ dominical
+ (Exento)
+
+
+
+
+
+
+
+ PTU
+ (Gravado)
+
+
+
+
+
+
+
+ PTU
+ (Exento)
+
+
+
+
+
+
+
+ Reembolso
+ de gastos
+ médicos,
+ (Gravado)
+
+
+
+
+
+
+
+ Reembolso
+ de gastos
+ médicos,
+ (Exento)
+
+
+
+
+
+
+
+ Fondo de
+ ahorro
+ (Gravado)
+
+
+
+
+
+
+
+ Fondo de
+ ahorro
+ (Exento)
+
+
+
+
+
+
+
+ Caja de
+ ahorro
+ (Gravado)
+
+
+
+
+
+
+
+ Caja de
+ ahorro
+ (Exento)
+
+
+
+
+
+
+
+ Vales para
+ despensa
+ (Gravado)
+
+
+
+
+
+
+
+ Vales para
+ despensa
+ (Exento)
+
+
+
+
+
+
+
+ Ayuda para
+ gastos de
+ funeral
+ (Gravado)
+
+
+
+
+
+
+
+ Ayuda para
+ gastos de
+ funeral
+ (Exento)
+
+
+
+
+
+
+
+ Contribuciones
+ a cargo del
+ trab(Gravado)
+
+
+
+
+
+
+
+ Contribuciones
+ a cargo del
+ trab(Exento)
+
+
+
+
+
+
+
+ Premios por
+ puntualidad
+ (Gravado)
+
+
+
+
+
+
+
+ Premios por
+ puntualidad
+ (Exento)
+
+
+
+
+
+
+
+ Prima de
+ seguro de
+ vida (Gravado)
+
+
+
+
+
+
+
+ Prima de
+ seguro de
+ vida (Exento)
+
+
+
+
+
+
+
+ Seguro de
+ gastos médicos
+ mayores (Gravado)
+
+
+
+
+
+
+
+ Seguro de
+ gastos médicos
+ mayores (Exento)
+
+
+
+
+
+
+
+ Vales para
+ restaurante
+ (Gravado)
+
+
+
+
+
+
+
+ Vales para
+ restaurante
+
+ (Exento)
+
+
+
+
+
+
+
+ Vales para
+ gasolina
+ (Gravado)
+
+
+
+
+
+
+
+ Vales para
+ gasolina
+ (Exento)
+
+
+
+
+
+
+
+ Vales para
+ ropa (Gravado)
+
+
+
+
+
+
+
+ Vales para
+ ropa (Exento)
+
+
+
+
+
+
+
+ Ayuda para
+ renta(Gravado)
+
+
+
+
+
+
+
+ Ayuda para
+ renta(Exento)
+
+
+
+
+
+
+
+ Ayuda para
+ artículos
+
+ escolares (Gravado)
+
+
+
+
+
+
+
+ Ayuda para
+ artículos
+ escolares (Exento)
+
+
+
+
+
+
+
+ Dotación o
+ ayuda para
+ anteojos (Gravado)
+
+
+
+
+
+
+
+ Dotación o
+ ayuda para
+ anteojos (Exento)
+
+
+
+
+
+
+
+ Ayuda para
+ transporte (Gravado)
+
+
+
+
+
+
+
+ Ayuda par
+ a transporte (Exento)
+
+
+
+
+
+
+
+ Cuotas sindicales
+ pagadas patron(Gravado)
+
+
+
+
+
+
+
+ Cuotas sindicales
+ pagadas patron(Exento)
+
+
+
+
+
+
+
+ Subsidios por
+ incapacidad (Gravado)
+
+
+
+
+
+
+
+ Subsidios por
+ incapacidad (Exento)
+
+
+
+
+
+ <%--Becas para trabajadores(Gravado)
+ Becas para trabajadores(Exento)--%>
+
+
+ Pagos
+ efectuados
+ por otros
+ empleadores
+ (Gravado)
+
+
+
+
+
+
+
+ Pagos
+ efectuados
+ por otros
+ empleadores
+ (Exento)
+
+
+
+
+
+
+
+ Otros
+ ingresos por
+ salarios
+ (Gravado)
+
+
+
+
+
+
+
+ Otros
+ ingresos por
+ salarios
+ (Exento)
+
+
+
+
+
+
+
+ Suma del
+ ingreso
+ GRAVADO
+
+
+
+
+
+
+
+ Suma del
+ ingreso
+ EXENTO
+
+
+
+
+
+
+
+
+
+
+ Impuesto
+ retenido
+ durante el
+ ejercicio
+
+
+
+
+
+
+
+ Impuesto
+ retenido por
+ otro(s)
+ patrón(es)
+
+
+
+
+
+
+
+ Saldo a favor
+ en el ejercicio
+ que declara
+
+ que el patrón
+
+ compensará durante
+ el siguiente
+ ejercicio
+
+
+
+
+
+
+
+ Saldo a favor
+ del ejercicio anterior
+ no compensado
+ durante el
+ ejercicio que
+ declara
++
+
+
+
+
+
+
+
+ Suma de las
+ cantidades
+
+ que por concepto
+ de crédito al
+
+ salario le
+
+ correspondió
+
+ al trabajador
+
+
+
+
+
+
+
+ Crédito al
+ salario
+ entregado
+ en efectivo
+
+
+
+
+
+
+
+ Monto total
+ de ingresos
+ obtenidos
+
+ Prev Social
+
+
+
+
+
+
+
+ Exentos
+
+ Previsión
+ social
+
+
+
+
+
+
+
+ Suma de ingresos por sueldos y salarios
+
+
+
+
+
+
+
+ Monto del
+ impuesto local
+ a los ingresos
+ por sueldos
+ y salarios
+
+
+
+
+
+
+
+ Monto del
+ subsidio para
+ el empleo
+ entregado en
+ el ejercicio
+
+
+
+
+
+
+
+ Total de
+ las aportaciones
+ voluntarias
+ deducibles
+
+
+
+
+
+
+
+ Impuesto
+ conforme a la
+ tarifa anual
+
+
+
+
+
+
+
+ Monto del
+ subsidio
+
+ acreditable
+
+ (No aplica)
+
+
+
+
+
+
+
+ Monto del
+ subsidio no
+ acreditable
+
+ (No aplica)
+
+
+
+
+
+
+
+ Impuesto sobre
+ ingresos
+ acumulables
+
+
+
+
+
+
+
+ Impuesto sobre
+ ingresos
+ no acumulables
+
+
+
+
+
+
+
+ Impuesto local
+ a los ingresos
+ por sueldos,
+ salarios
+
+ y en general
+
+
+
+
+
+
+
+ Monto del
+ subsidio para
+ el empleo
+ que le correspondió
+
+ al trabajador
+
+ durante
+
+ el ejercicio
+
+
+
+
+
+
+
+
+
-
-
diff --git a/Nomina/RepPersonalDIM.aspx.vb b/Nomina/RepPersonalDIM.aspx.vb
index df4b99ab2..d264bf3ac 100644
--- a/Nomina/RepPersonalDIM.aspx.vb
+++ b/Nomina/RepPersonalDIM.aspx.vb
@@ -4,6 +4,7 @@ Option Strict On
Imports System.Data
Imports System.Drawing
Imports System.IO
+Imports CrystalDecisions.CrystalReports.Engine
Imports Extensiones
Imports GemBox.Spreadsheet
Imports Microsoft.Reporting.WebForms
@@ -85,6 +86,8 @@ Partial Class Nomina_RepPersonalDIM
GvDatos.DataBind()
+ UpAcciones.Update()
+ UpGvCargaDatos.Update()
End Sub
@@ -97,53 +100,346 @@ Partial Class Nomina_RepPersonalDIM
End Sub
Private Sub Imprimir(Optional reporte As String = "PDF")
- GvDatos.ExportToExcelGembox("RepPersonalDIM", UsuarioActual, "Reporte Personal ", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
-
+ ExportToExcelGembox(GvDatos, "RepPersonalDIM", UsuarioActual, "Reporte Personal DIM", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}")
End Sub
-
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
Protected Sub LnkDescargaArchivo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LnkDescargaArchivo.Click
- Dim tabla As DataTable = Dt_Datos ' Reemplaza esto con tu método para obtener la tabla
+ Dim tabla As DataTable = Dt_Datos
- Dim contenido As String = ConvertirTablaATexto(tabla)
+ Dim contenidoBytes As Byte() = Encoding.UTF8.GetBytes(ConvertirTablaATexto(tabla))
- ' Guardar el archivo en el servidor
- Dim nombreArchivo As String = "tabla.txt"
- Dim rutaArchivo As String = Server.MapPath("~/Descargas/" & nombreArchivo)
- File.WriteAllText(rutaArchivo, contenido)
+ Using memoryStream As New MemoryStream(contenidoBytes)
+ Response.Clear()
+ Response.ContentType = "text/plain"
+ Response.AddHeader("Content-Disposition", $"attachment; filename=RepPersonalDIM{DdlEjercicio.SelectedItem.Text}.txt")
+ memoryStream.WriteTo(Response.OutputStream)
+ End Using
- ' Descargar el archivo
- Response.ContentType = "text/plain"
- Response.AppendHeader("Content-Disposition", "attachment; filename=" & nombreArchivo)
- Response.TransmitFile(rutaArchivo)
Response.End()
+
End Sub
- Public Function ConvertirTablaATexto(ByVal tabla As DataTable) As String
- Dim sb As New StringBuilder()
+ Public Function ConvertirTablaATexto(ByVal DT As DataTable) As String
- For Each fila As DataRow In tabla.Rows
- For i As Integer = 0 To tabla.Columns.Count - 1
- sb.Append(fila(i).ToString())
+ Dim DTDatos As DataTable = DT.Copy()
- If i < tabla.Columns.Count - 1 Then
- sb.Append("|") ' Agrega el separador de pipes
- End If
- Next
+ Dim columnasARemover As New List(Of DataColumn)()
- sb.AppendLine() ' Agrega un salto de línea al final de cada fila
+
+ For Each columna As DataColumn In DTDatos.Columns
+ If columna.ColumnName.Contains("CvePersonal") Then
+ columnasARemover.Add(columna)
+ End If
Next
- Return sb.ToString()
+
+ For Each columna As DataColumn In columnasARemover
+ DTDatos.Columns.Remove(columna)
+ Next
+
+ DTDatos.AcceptChanges()
+
+ Dim sb As New StringBuilder
+ For Each fila As DataRow In DTDatos.Rows
+ For i As Integer = 0 To DTDatos.Columns.Count - 1
+ sb.Append(fila(i).ToString())
+
+ If i < DTDatos.Columns.Count - 1 Then
+ sb.Append("|")
+ End If
+ Next
+ sb.AppendLine()
+ Next
+
+ Return sb.tostring
+
End Function
#End Region
+ Protected Sub GvDatos_DataBound(sender As Object, e As EventArgs)
+
+ Dim row As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
+ Dim cell As New TableHeaderCell()
+ cell.Text = "ANEXO 1 INFORMACION DEL EMPLEADO ->"
+ cell.ColumnSpan = 28
+ cell.HorizontalAlign = HorizontalAlign.Left
+ row.Controls.Add(cell)
+
+
+
+ cell = New TableHeaderCell()
+ cell.ColumnSpan = 18
+ cell.Text = "ANEXO 1 PAGOS POR SEPARACION ->"
+ cell.HorizontalAlign = HorizontalAlign.Left
+ row.Controls.Add(cell)
+
+
+ cell = New TableHeaderCell()
+ cell.ColumnSpan = 2
+ cell.Text = " ANEXO 1 ASIM SAL-> "
+ cell.HorizontalAlign = HorizontalAlign.Left
+ row.Controls.Add(cell)
+
+
+ cell = New TableHeaderCell()
+ cell.ColumnSpan = 58
+ cell.Text = "ANEXO 1 PAGOS DEL PATRÓN EFECTUADOS A SUS TRABAJADORES ->"
+ cell.HorizontalAlign = HorizontalAlign.Left
+ row.Controls.Add(cell)
+
+ cell = New TableHeaderCell()
+ cell.ColumnSpan = 19
+ cell.Text = "ANEXO 1 IMPUESTO SOBRE LA RENTA (RESUMEN) ->"
+ cell.HorizontalAlign = HorizontalAlign.Left
+ row.Controls.Add(cell)
+
+ 'row.BackColor = ColorTranslator.FromHtml("#3AC0F2")
+ GvDatos.HeaderRow.Parent.Controls.AddAt(0, row)
+
+ End Sub
+ Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing)
+
+ Dim sw1 As New StringWriter()
+ Dim htw1 As New HtmlTextWriter(sw1)
+ GridView.RenderControl(htw1)
+
+ Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault
+
+ Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString()))
+
+ htmlStream1.Position = 0
+ Dim sr1 As New StreamReader(htmlStream1)
+ Dim myStr1 = sr1.ReadToEnd()
+ sr1.Dispose()
+ htmlStream1.Dispose()
+ sw1.Dispose()
+
+ Dim HtmlCompleto As String = myStr1
+
+ HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "")
+
+ Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto))
+
+ GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet)
+
+ Dim excel As GemBox.Spreadsheet.ExcelFile
+
+ excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options)
+
+ If Usuario IsNot Nothing Then
+
+ Dim TotalRowHeader As Integer = 6
+ Dim TotalRowFooter As Integer = 2
+
+
+ Dim worksheet = excel.Worksheets(0)
+ worksheet.Rows.InsertEmpty(0, TotalRowHeader)
+ Dim celdasConTexto = worksheet.GetUsedCellRange(True)
+ If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error
+ celdasConTexto.Style.Font.Name = "Calibri Light"
+
+ Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
+ RangoNombreEmpresa.Merged = True
+ RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
+ RangoNombreEmpresa.Style.Font.Size = 18 * 20
+ RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
+ RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+
+ Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
+ RangoTitulo.Merged = True
+ RangoTitulo.Value = Titulo
+ RangoTitulo.Style.Font.Size = 20 * 20
+ RangoTitulo.Style.Font.Name = "Calibri Light"
+ RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+ If DatoTituloExtra.Length > 0 Then
+ Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
+ RangoDatoTituloExtra.Merged = True
+ RangoDatoTituloExtra.Value = DatoTituloExtra
+ RangoDatoTituloExtra.Style.Font.Size = 20 * 20
+ RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
+ RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
+ RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+ End If
+
+ If DatosFiltros.Length > 0 Then
+
+ Dim Arreglo As String() = DatosFiltros.Split("|"c)
+ worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
+ For Each TextoFiltro As String In Arreglo
+ Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
+ RangoDatoTituloExtra.Merged = True
+ RangoDatoTituloExtra.Value = TextoFiltro
+ RangoDatoTituloExtra.Style.Font.Size = 12 * 20
+ RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
+ RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
+ RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+ TotalRowHeader += 1
+
+ Next
+ End If
+
+ ' TotalRowHeader += 2
+
+ For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
+
+ worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20
+ worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+ worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
+ worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
+
+ If i > 0 Then
+ Try
+ worksheet.Columns(i).AutoFit(1)
+ Catch ex As Exception
+ End Try
+ End If
+
+ Next
+
+ Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter
+
+ worksheet.Rows(IndexEndTable).Cells(1).Value = "Usuario Imprimió"
+ worksheet.Rows(IndexEndTable + 1).Cells(1).Value = Usuario.Nombre
+
+ worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión"
+ worksheet.Rows(IndexEndTable + 1).Cells(3).Value = DateTime.Now.ToString("dd/MM/yyyy")
+
+ Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
+
+ If Imagen.Exists Then
+ Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
+ Using sr As New StreamReader(Ruta)
+ Dim ms As New MemoryStream()
+ sr.BaseStream.CopyTo(ms)
+ worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
+ End Using
+ End If
+
+
+ For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
+
+ If I > 0 Then
+
+ If 1 = 1 Then
+ worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
+ Else
+ worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
+ End If
+
+ Try
+ worksheet.Columns(I).AutoFit(1)
+ Catch ex As Exception
+ End Try
+
+ End If
+ Next
+
+
+
+ If DTExtra IsNot Nothing Then
+
+ Dim NombreTabla As String = ""
+
+ If DTExtra.TableName IsNot Nothing Then
+ NombreTabla = DTExtra.TableName
+ End If
+
+ If NombreTabla.Trim = "" Then
+ NombreTabla = "hoja2"
+ End If
+
+ 'excel.Worksheets.Add(NombreTabla)
+
+ Dim workbookDTExtra = New ExcelFile
+ Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla)
+
+
+ worksheetDTExtra.InsertDataTable(DTExtra,
+ New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0
+ })
+
+
+
+ Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns()
+ For i As Integer = 0 To columnCount - 1
+ worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1))
+ worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be"))
+ worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Next
+
+
+ excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
+ excel.Worksheets(0).Name = Titulo
+ End If
+
+
+
+ Dim indexRow As Integer = 8
+ Dim indexRowGV As Integer = 0
+ Dim cssClassRow As String = ""
+
+ Dim CountRowFiltros As Integer = -1
+ If DatosFiltros.Trim.Length > 0 Then
+ CountRowFiltros = 0
+ End If
+
+ For indexRow = 8 To worksheet.Rows.Count - 4
+
+ Try
+ cssClassRow = GridView.Rows(indexRowGV).CssClass.Trim()
+
+ Select Case cssClassRow
+
+ Case "Totales"
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#67809f"))
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#ddd")
+ Exit Select
+ Case "SubTotales2"
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#c0c0c0"))
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#000077")
+ Exit Select
+ Case "SubTotales"
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#dddddd"))
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000
+ worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#67809F")
+ Exit Select
+ Case Else
+ Exit Select
+ End Select
+
+ Catch ex As Exception
+ End Try
+
+ indexRowGV += 1
+ Next
+
+
+
+ End If
+
+ excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
+
+
+ End Sub
End Class