[ Foro de C# ]
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.
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
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.)