none
Cambiar una columna por otra al exportar usando DataTable RRS feed

  • Pregunta

  • Muy buena tarde tengan, pido de su apoyo para saber si se puede hacer lo siguiente:

    Tengo una tabla con las siguientes columnas:

    • N.
    • Nombre
    • Edad
    • Direccion
    • Descripcion (corta)
    • Telefono.

    Lleno mi tabla con los datos obtenidos de una consulta en SQL. y hago la exportación a Excel, CSV, PDF con la función de DataTable.

    Lo que yo quiero hacer es lo siguiente, al momento de exportar en lugar de tomar los datos de 'Descripción (corta) quiero que se tomen los datos de 'Descripción (larga)'. 

    Existe alguna forma de hacer eso?

    Agradezco el apoyo

    miércoles, 29 de julio de 2020 17:56

Respuestas

  • He dado solución amigos por si a alguien le puede interesar, lo hice de la siguiente manera: 

    Lo primero que hice fue agregar las dos columnas a mi tabla 

    • Descripción
    • Descripción larga

    posterior a eso, oculte la columna 'Descripción larga' desde js en el data table:

           $('#tticketsfiltros').DataTable({            
                "columnDefs": [
                {
                    "targets": [5],
                    "visible": false,
                    "searchable": false
                }]
            });

    y por ultimo indique que columnas se ivan a exportar, esto lo indique desde js en el data table:

                

            $('#tticketsfiltros').DataTable({
                dom: 'Bfrtilp',
                buttons: [
                    {
                        extend: 'excel',
                        text: '<i class="fa fa-file-excel-o"></i>',
                        titleAttr: 'Exportar a excel',
                        className: 'btn btn-success',
                        exportOptions: {
                            columns: [0, 1, 2, 3, 5, 6, 7, 8, 9, 10]
                        }
                    }]

            });

    No se si es la manera correcta de hacerlo, a mi me funcione y espero a alguien mas le pueda servir. De cualquier forma se aceptan otras soluciones que puedan mejorar la acción.

    • Marcado como respuesta Cristian Hdez miércoles, 29 de julio de 2020 19:04
    miércoles, 29 de julio de 2020 19:04

Todas las respuestas

  • Hola Cristian Hdez, 

      

    Gracias por levantar tu consulta en los foros de MSDN. a la hora de exportar los datos a excel, etc en vez de poner la variable descripcion corta poner la variable que tiene la descripcion larga me imagino que tienes dos variables una que tiene una descripcion corta y la otra la larga o como lo tienes? tambien esos datos me imagino que los cargas al datatable pero solo se muestra la descripcion corta entonces es hacer lo mismo pero que no se muestren simplemente que se carguen y despues nada mas envias el de descripcion larga. tambien puedes adjuntar el codigo en como lo tienes hecho para que la comunidad de foros te pueda ayudar mejor.

     

     Andres Aguilar

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

     

    miércoles, 29 de julio de 2020 18:39
    Moderador
  • He dado solución amigos por si a alguien le puede interesar, lo hice de la siguiente manera: 

    Lo primero que hice fue agregar las dos columnas a mi tabla 

    • Descripción
    • Descripción larga

    posterior a eso, oculte la columna 'Descripción larga' desde js en el data table:

           $('#tticketsfiltros').DataTable({            
                "columnDefs": [
                {
                    "targets": [5],
                    "visible": false,
                    "searchable": false
                }]
            });

    y por ultimo indique que columnas se ivan a exportar, esto lo indique desde js en el data table:

                

            $('#tticketsfiltros').DataTable({
                dom: 'Bfrtilp',
                buttons: [
                    {
                        extend: 'excel',
                        text: '<i class="fa fa-file-excel-o"></i>',
                        titleAttr: 'Exportar a excel',
                        className: 'btn btn-success',
                        exportOptions: {
                            columns: [0, 1, 2, 3, 5, 6, 7, 8, 9, 10]
                        }
                    }]

            });

    No se si es la manera correcta de hacerlo, a mi me funcione y espero a alguien mas le pueda servir. De cualquier forma se aceptan otras soluciones que puedan mejorar la acción.

    • Marcado como respuesta Cristian Hdez miércoles, 29 de julio de 2020 19:04
    miércoles, 29 de julio de 2020 19:04
  • Hola Andres Aguilar, de antemano te agradezco por tu contribución a esta pregunta. 

    Es correcto, tengo dos variables diferentes una que es descripción normal (larga) y descripción corta, En la vista de la tabla tengo que mostrar la descripción corta, y al momento de exportar debe hacer un cambio y exportar la descripción larga.

    Como lo puse en este foro, mi solución fue que utilizar en la tabla las dos columnas solo que, ocultar la descripción larga, y al exportar indicar que columnas enviar.

    Saludos y de antemano gracias.

    jueves, 30 de julio de 2020 16:51