首页 > 代码库 > C#winform中datagridview导出Excel

C#winform中datagridview导出Excel

只需要传入datagridview的name即可。

 1 //导出Excel()方法 2         public void ToExcel(DataGridView dataGridView) 3         { 4             //实例化一个Excel.Application对象   5             Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 6  7             if (excel == null) 8             { 9                 UMessageBoxWarning("无法创建Excel对象,可能您的计算机未安装Excel!");10                 return;11             }12             try13             {14                 //没有数据的话就不往下执行  15                 if (dataGridView.Rows.Count == 0)16                     return;17 18                 //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  19                 excel.Visible = true;20 21                 //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错  22                 excel.Application.Workbooks.Add(true);23                 //生成Excel中列头名称  24                 for (int i = 0; i < dataGridView.Columns.Count; i++)25                 {26                     if (dataGridView.Columns[i].Visible == true)27                     {28                         excel.Cells[1, i + 1] = dataGridView.Columns[i].HeaderText;29                     }30 31                 }32                 //把DataGridView当前页的数据保存在Excel中  33                 for (int i = 0; i < dataGridView.Rows.Count - 1; i++)34                 {35                     Application.DoEvents();36                     for (int j = 0; j < dataGridView.Columns.Count; j++)37                     {38                         if (dataGridView.Columns[j].Visible == true)39                         {40                             if (dataGridView[j, i].ValueType == typeof(string))41                             {42                                 excel.Cells[i + 2, j + 1] = "" + dataGridView[j, i].Value.ToString();43                             }44                             else45                             {46                                 excel.Cells[i + 2, j + 1] = dataGridView[j, i].Value.ToString();47                             }48                         }49 50                     }51                 }52                 //设置禁止弹出保存和覆盖的询问提示框  53                 //...54                 //确保Excel进程关闭  55                 excel.Quit();56                 excel = null;57                 GC.Collect();//如果不使用这条语句会导致excel进程无法正常退出,使用后正常退出58                 UMessageBoxNone("文件已经成功导出!");59             }60             catch (Exception ex)61             {62                 MessageBox.Show(ex.Message);63             }64 65         }

 

C#winform中datagridview导出Excel