DataGridView直接导出EXCEL

出处:http://www.cnblogs.com/xiaotan68/archive/2008/03/20/1114796.html

 

DataGridView直接导出EXCEL

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

1publicvoid 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                        else34                            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                            else43                            { 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
1publicvoid 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                        else31                        { 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 2013-09-10 18:44  Q&A  阅读(131)  评论(0)    收藏  举报