none
Copiar toda la información de un DataGrid al portapeles y hacer un Paste en una hoja de Excel (WPF) RRS feed

  • Pregunta

  • Hola, en un proyecto de WPF, .NET Framework 4, tengo un indicador de servicio, muestro los resultados en un DataGrid, contiene 2 columnas y 10 renglones, quiero darle la posibilidad al usuario de que seleccione todos estos datos, los copie, y luego se pueda ir a Excel y pegarlos en una hoja (Copy - Paste)

    Ya estuve viendo algo sobre 

    ClipboardCopyMode="IncludeHeader"

    del DataGrid pero no entiendo cómo sería la mecánica ni qué más debo programar...

    Alguien habrá hecho algo similar para que me oriente??


    cyndyrdz

    jueves, 11 de mayo de 2017 14:13

Respuestas

  • Ya lo conseguí, agregué un botón de Copiar y su código:

    private void btnCopiar_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            grdTiempoServicio.SelectAllCells();
            grdTiempoServicio.ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader;
            ApplicationCommands.Copy.Execute(null, grdTiempoServicio);
            grdTiempoServicio.UnselectAllCells();
            LimpiaConsulta();
        }
        catch (System.Runtime.InteropServices.ExternalException ex)
        {
            Mensaje = new wMensaje("Error", ex.Message + System.Environment.NewLine + System.Environment.NewLine
                + (ex.InnerException != null ? ex.InnerException.ToString() : ""));
            Mensaje.ShowDialog();
        }
    }

    El usuario una vez que le presento la consulta en el DataGrid, puede oprimir el botón de Copiar, y listo, se va a Excel allí le da un Paste y le pega los datos del DataGrid


    cyndyrdz

    jueves, 11 de mayo de 2017 16:41