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("
") >  0) 
47                                    rowstr = rowstr.Replace("
", " "); 
48                                if (rowstr.IndexOf("	") >  0) 
49                                    rowstr = rowstr.Replace("	", " "); 
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("
") > 0)
35                                rowstr = rowstr.Replace("
", " ");
36                            if (rowstr.IndexOf("	") > 0)
37                                rowstr = rowstr.Replace("	", " ");
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        }
原文地址:https://www.cnblogs.com/xuxiaoshuan/p/4315059.html