DataGridView直接导出EXCEL

1.直接将DataGridView显示的内容导出Excel

 1public void DataToExcel(DataGridView m_DataView)
 2        {
 3            SaveFileDialog kk = new SaveFileDialog(); 
 4            kk.Title = "保存EXECL文件"
 5            kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*"
 6            kk.FilterIndex = 1;
 7            if (kk.ShowDialog() == DialogResult.OK) 
 8            
 9                string FileName = kk.FileName + ".xls";
10                if (File.Exists(FileName))
11                    File.Delete(FileName);
12                FileStream objFileStream; 
13                StreamWriter objStreamWriter; 
14                string strLine = ""
15                objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write); 
16                objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);
17                for (int i = 0; i  < m_DataView.Columns.Count; i++
18                
19                    if (m_DataView.Columns[i].Visible == true
20                    
21                        strLine = strLine + m_DataView.Columns[i].HeaderText.ToString() + Convert.ToChar(9); 
22                    }
 
23                }
 
24                objStreamWriter.WriteLine(strLine); 
25                strLine = ""
26
27                for (int i = 0; i  < m_DataView.Rows.Count; i++
28                
29                    if (m_DataView.Columns[0].Visible == true
30                    
31                        if (m_DataView.Rows[i].Cells[0].Value == null
32                            strLine = strLine + " " + Convert.ToChar(9); 
33                        else 
34                            strLine = strLine + m_DataView.Rows[i].Cells[0].Value.ToString() + Convert.ToChar(9); 
35                    }
 
36                    for (int j = 1; j  < m_DataView.Columns.Count; j++
37                    
38                        if (m_DataView.Columns[j].Visible == true
39                        
40                            if (m_DataView.Rows[i].Cells[j].Value == null
41                                strLine = strLine + " " + Convert.ToChar(9); 
42                            else 
43                            
44                                string rowstr = ""
45                                rowstr = m_DataView.Rows[i].Cells[j].Value.ToString(); 
46                                if (rowstr.IndexOf("\r\n">  0
47                                    rowstr = rowstr.Replace("\r\n"" "); 
48                                if (rowstr.IndexOf("\t">  0
49                                    rowstr = rowstr.Replace("\t"" "); 
50                                strLine = strLine + rowstr + Convert.ToChar(9); 
51                            }
 
52                        }
 
53                    }
 
54                    objStreamWriter.WriteLine(strLine); 
55                    strLine = ""
56                }
 
57                objStreamWriter.Close(); 
58                objFileStream.Close();
59                MessageBox.Show(this,"保存EXCEL成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information); 
60            }

61        }


2.用DataGridView绑定的DataTable为参数,导出Excel
 1public void DataToExcel(DataTable m_DataTable)
 2        {
 3            SaveFileDialog kk = new SaveFileDialog();
 4            kk.Title = "保存EXECL文件";
 5            kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";
 6            kk.FilterIndex = 1;
 7            if (kk.ShowDialog() == DialogResult.OK)
 8            {
 9                string FileName = kk.FileName + ".xls";
10                if (File.Exists(FileName))
11                    File.Delete(FileName);
12                FileStream objFileStream;
13                StreamWriter objStreamWriter;
14                string strLine = "";
15                objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
16                objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);
17                for (int i = 0; i < m_DataTable.Columns.Count; i++)
18                {
19                    strLine = strLine + m_DataTable.Columns[i].Caption.ToString() + Convert.ToChar(9);
20                }

21                objStreamWriter.WriteLine(strLine);
22                strLine = "";
23
24                for (int i = 0; i < m_DataTable.Rows.Count; i++)
25                {
26                    for (int j = 0; j < m_DataTable.Columns.Count; j++)
27                    {
28                        if (m_DataTable.Rows[i].ItemArray[j] == null)
29                            strLine = strLine + " " + Convert.ToChar(9);
30                        else
31                        {
32                            string rowstr = "";
33                            rowstr = m_DataTable.Rows[i].ItemArray[j].ToString();
34                            if (rowstr.IndexOf("\r\n"> 0)
35                                rowstr = rowstr.Replace("\r\n"" ");
36                            if (rowstr.IndexOf("\t"> 0)
37                                rowstr = rowstr.Replace("\t"" ");
38                            strLine = strLine + rowstr + Convert.ToChar(9);
39                        }

40                    }

41                    objStreamWriter.WriteLine(strLine);
42                    strLine = "";
43                }

44                objStreamWriter.Close();
45                objFileStream.Close();
46                MessageBox.Show(this"保存EXCEL成功""提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
47            }

48        }
posted on 2008-03-20 14:31  田田向上  阅读(19993)  评论(13编辑  收藏  举报