[ Foro de C# ]

es posible obtener el color de celda de datagrid al copiar contenido con clipboard?

09-Jun-2014 13:47
Invitado (Lorax)
2 Respuestas

Buen día!
Tengo una  aplicación winform en donde debo exportar un datagrid a excel esto lo realizo copiando el contenido del datagrid de la siguiente manera:


 private void CopiarData()
        {
            dgvDesgloce.SelectAll();           
            dgvDesgloce.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;           
            DataObject dataObj = dgvDesgloce.GetClipboardContent();

           
            if (dataObj != null)
                Clipboard.SetDataObject(dataObj);
        }
Después lo escribo en una hoja de excel:
 CopiarData();
                Microsoft.Office.Interop.Excel.Application xlexcel;
                Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
                Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
                object misValue = System.Reflection.Missing.Value;
                xlexcel = new Excel.Application();
                xlexcel.Visible = true;
                xlWorkBook = xlexcel.Workbooks.Add(misValue);
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                xlWorkSheet.Cells.NumberFormat = "@";                  
                Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
                CR.Select();


  y hasta aquí todo bien , el problema es que debo respetar los colores de celdas del datagrid y no tengo idea como saber el color que le corresponde o como asignarlos
De antemano les agradezco su atención espero y me puedan orientar.


10-Jun-2014 23:56
Nacho Cabanes (+84)

Es frecuente que el copiar y pegar desde ciertos componentes no respete los colores, sino sólo el contenido como texto (o en formatos delimitados, como el CSV, si se trata de varias casillas).

Yo nunca he pretendido llevarme formatos de un datagrid, y menos aún a Excel, pero he leído de algún autor que ha hecho copy-paste con formato usando HTML, como éste, que quizá te pueda servir de algo:

http://blog.tcx.be/2005/08/copying-html-fragment-to-clipboard.html


12-Jun-2014 17:39
Invitado (Lorax)

Gracias por la sugerencia !!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)