转载:DataGridView 导出到 Excel中

以下代码,从这里K过来,亲测可用。

 1         public void exportToExcel(DataGridView dataGridView1)  
 2         {  
 3             //导出到execl  
 4             try  
 5             {  
 6                 //没有数据的话就不往下执行  
 7                 if (dataGridView1.Rows.Count == 0)  
 8                     return;  
 9                 //实例化一个Excel.Application对象  
10                 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();  
11           
12                 //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  
13                 excel.Visible = false;  
14                           
15                 //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错  
16             excel.Application.Workbooks.Add(true);                
17                 //生成Excel中列头名称  
18                 for (int i = 0; i < dataGridView1.Columns.Count; i++)  
19                 {  
20                     excel.Cells[1, i + 1= dataGridView1.Columns[i].HeaderText;  
21                 }  
22                 //把DataGridView当前页的数据保存在Excel中  
23                 for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)  
24                 {  
25                     for (int j = 0; j < dataGridView1.Columns.Count; j++)  
26                     {  
27                         if (dataGridView1[j, i].ValueType == typeof(string))  
28                         {  
29                             excel.Cells[i + 2, j + 1= "'" + dataGridView1[j, i].Value.ToString();  
30                         }  
31                         else  
32                         {  
33                             excel.Cells[i + 2, j + 1= dataGridView1[j, i].Value.ToString();  
34                         }  
35                     }  
36                 }  
37           
38                 //设置禁止弹出保存和覆盖的询问提示框  
39                 excel.DisplayAlerts = false;  
40                 excel.AlertBeforeOverwriting = false;  
41           
42                 //保存工作簿  
43                 excel.Application.Workbooks.Add(true).Save();  
44                 //保存excel文件  
45                 excel.Save("D:" + "\\KKHMD.xls");  
46                               
47                 //确保Excel进程关闭  
48                 excel.Quit();  
49                 excel = null;  
50           
51             }  
52             catch (Exception ex)  
53             {  
54                 MessageBox.Show(ex.Message, "错误提示");  
55             }  

56         }  

感谢作者:) 

posted @ 2011-07-03 00:41  郝玉琨  阅读(330)  评论(0编辑  收藏  举报