C#winform中datagridview导出Excel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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             try
13             {
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                             else
45                             {
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的主要内容,如果未能解决你的问题,请参考以下文章

各位仁兄,我想请教一下在C#winform中,datagridview如何导出excel文件,将excel导入datagridview.

C#winform中如何把表导出到EXCEL

C#Winform中DataGridView合并单元格的问题?

C#winform 将excel中的数据导入到datagridview中

c# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据

在C#,winform下怎样实现使用打印控件printDocument来打印datagridview里的内容?