none
Exportar a excel Datagridview pero sin las cuadriculas como si fuera un word. RRS feed

  • Pregunta

  • Buenos días a todos,

    ¿Sabría alguien decirme como hacer para cuando exporto un datagridview a excel me desaparezcan las cuadriculas?

    Es decir ,que se me quede en blanco con el contenido del Datagridview.

    Yo lo exporto pero con las cuadriculas y me han pedido que no quieren cuadriculas sino que se muestre con el fondo en blanco y sin las cuadriculas.

    1000 gracias

    martes, 22 de enero de 2019 7:48

Respuestas

  • Hola:

    Tienes 2 opciones (por lo menos):
    La primera es desde el propio excel, Opciones de excel > Avanzadas > Mostrar Opciones para esta hoja > Mostrar lineas de división

    La segunda es por codigo, pero esta opcion depende de como generes el fichero de excel.
    Yo suelo usar la libreria SpireXLS, con esta seria algo como esto

            Dim workbook As Workbook = New Workbook()
            'Inicializar hoja de cálculo
            Dim sheet As Worksheet = workbook.Worksheets(0)
            sheet.InsertDataTable(mdtDataTable, True, 2, 1, -1, -1)
            'Establece el estilo del cuerpo
            Dim oddStyle As CellStyle = workbook.Styles.Add("oddStyle")
            oddStyle.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            oddStyle.KnownColor = ExcelColors.LightGreen1
            Dim evenStyle As CellStyle = workbook.Styles.Add("evenStyle")
            evenStyle.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            evenStyle.KnownColor = ExcelColors.LightTurquoise
            For Each range As CellRange In sheet.AllocatedRange.Rows
                If range.Row Mod 2 = 0 Then
                    range.CellStyleName = evenStyle.Name
                Else
                    range.CellStyleName = oddStyle.Name
                End If
            Next range
            'Establece el estilo del encabezado
            Dim styleHeader As CellStyle = sheet.Rows(0).Style
            styleHeader.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            styleHeader.VerticalAlignment = VerticalAlignType.Center
            styleHeader.KnownColor = ExcelColors.Green
            styleHeader.Font.KnownColor = ExcelColors.White
            styleHeader.Font.IsBold = True
            '
            workbook.SaveToFile(txtPathDestino.Text, ExcelVersion.Version2007)
            System.Diagnostics.Process.Start(txtPathDestino.Text)

    El resultado es como esta imagen

           
    Un saludo desde bilbo
    Carlos

    martes, 22 de enero de 2019 8:37

Todas las respuestas

  • Hola:

    Tienes 2 opciones (por lo menos):
    La primera es desde el propio excel, Opciones de excel > Avanzadas > Mostrar Opciones para esta hoja > Mostrar lineas de división

    La segunda es por codigo, pero esta opcion depende de como generes el fichero de excel.
    Yo suelo usar la libreria SpireXLS, con esta seria algo como esto

            Dim workbook As Workbook = New Workbook()
            'Inicializar hoja de cálculo
            Dim sheet As Worksheet = workbook.Worksheets(0)
            sheet.InsertDataTable(mdtDataTable, True, 2, 1, -1, -1)
            'Establece el estilo del cuerpo
            Dim oddStyle As CellStyle = workbook.Styles.Add("oddStyle")
            oddStyle.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            oddStyle.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            oddStyle.KnownColor = ExcelColors.LightGreen1
            Dim evenStyle As CellStyle = workbook.Styles.Add("evenStyle")
            evenStyle.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            evenStyle.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            evenStyle.KnownColor = ExcelColors.LightTurquoise
            For Each range As CellRange In sheet.AllocatedRange.Rows
                If range.Row Mod 2 = 0 Then
                    range.CellStyleName = evenStyle.Name
                Else
                    range.CellStyleName = oddStyle.Name
                End If
            Next range
            'Establece el estilo del encabezado
            Dim styleHeader As CellStyle = sheet.Rows(0).Style
            styleHeader.Borders(BordersLineType.EdgeLeft).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeRight).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeTop).LineStyle = LineStyleType.None
            styleHeader.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.None
            styleHeader.VerticalAlignment = VerticalAlignType.Center
            styleHeader.KnownColor = ExcelColors.Green
            styleHeader.Font.KnownColor = ExcelColors.White
            styleHeader.Font.IsBold = True
            '
            workbook.SaveToFile(txtPathDestino.Text, ExcelVersion.Version2007)
            System.Diagnostics.Process.Start(txtPathDestino.Text)

    El resultado es como esta imagen

           
    Un saludo desde bilbo
    Carlos

    martes, 22 de enero de 2019 8:37
  • Ok gracias.

    Lo probare

    martes, 22 de enero de 2019 8:40