码迷,mamicode.com
首页 > Windows程序 > 详细

C#winform中datagridview导出Excel

时间:2016-10-08 19:15:28      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

只需要传入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

标签:

原文地址:http://www.cnblogs.com/mingsn/p/5939617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!