现在有这么种情况,我要把datagrid的数据导出来execl,有几列是有背景色的,而且datagrid的已经分页了的,我现在要把所有数据导出,保留相应列的背景色,导出的数据是全部,而不是只是一页

解决方案 »

  1.   

    那就直接取datatable的数据,设置背景色,自己查查msdn
      

  2.   

    web 没搞过 winform 可以 告诉你 全部代码 
     if (dataGridView2.DataSource ==null || dataGridView2.Rows.Count <= 0)
                {
                    MessageBox.Show("没有数据可导出", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Filter = "Excel File|*.xls";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        System.Data.DataTable dt = dataGridView2.DataSource as System.Data.DataTable;
                        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                        Microsoft.Office.Interop.Excel.Workbook workBook = excel.Workbooks.Add(true);
                        Microsoft.Office.Interop.Excel.Worksheet excelSheet = workBook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
                        excel.Cells.Select();
                        excel.Cells.Columns.AutoFit();
                        for (int x = 0; x < dt.Rows.Count-1; x++)
                        {
                            excel.Cells[1, x + 1] = dt.Columns[x].ColumnName;
                        }
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            for (int k = 0; k < dt.Rows.Count-1; k++)
                            {
                                excel.Cells[i + 2, k + 1] = dt.Rows[i][k].ToString();
                            }
                        }
                        excel.DisplayAlerts = false;
                        excel.AlertBeforeOverwriting = false;
                        excelSheet.SaveAs(sfd.FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                        workBook.Save();
                        excel.Quit();
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
                        excelSheet = null;
                        workBook = null;
                        excel = null;
                        GC.Collect();
                        MessageBox.Show("导出数据成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch
                    {
                        MessageBox.Show("导出数据失败","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    }
      

  3.   

    winform版本的哈 看对你有帮助没有 这个方法 winform 是没有问题的 测试过了
      

  4.   

    datagrid分页的也可以吗  某几列的背景色怎么弄