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        }

 

你可能感兴趣的:(c#,datagridview,excel)