导出Excel

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

public void DataToExcel(DataGridView m_DataView) { SaveFileDialog kk = new SaveFileDialog(); kk.Title = "保存EXECL文件"; kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*"; kk.FilterIndex = 1; if (kk.ShowDialog() == DialogResult.OK) { string FileName = kk.FileName + ".xls"; if (File.Exists(FileName)) File.Delete(FileName); FileStream objFileStream; StreamWriter objStreamWriter; string strLine = ""; objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write); objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode); for (int i = 0; i < m_DataView.Columns.Count; i++) { if (m_DataView.Columns[i].Visible == true) { strLine = strLine + m_DataView.Columns[i].HeaderText.ToString() + Convert.ToChar(9); } } objStreamWriter.WriteLine(strLine); strLine = ""; for (int i = 0; i < m_DataView.Rows.Count; i++) { if (m_DataView.Columns[0].Visible == true) { if (m_DataView.Rows[i].Cells[0].Value == null) strLine = strLine + " " + Convert.ToChar(9); else strLine = strLine + m_DataView.Rows[i].Cells[0].Value.ToString() + Convert.ToChar(9); } for (int j = 1; j < m_DataView.Columns.Count; j++) { if (m_DataView.Columns[j].Visible == true) { if (m_DataView.Rows[i].Cells[j].Value == null) strLine = strLine + " " + Convert.ToChar(9); else { string rowstr = ""; rowstr = m_DataView.Rows[i].Cells[j].Value.ToString(); if (rowstr.IndexOf(" ") > 0) rowstr = rowstr.Replace(" ", " "); if (rowstr.IndexOf(" ") > 0) rowstr = rowstr.Replace(" ", " "); strLine = strLine + rowstr + Convert.ToChar(9); } } } objStreamWriter.WriteLine(strLine); strLine = ""; } objStreamWriter.Close(); objFileStream.Close(); MessageBox.Show(this, "保存EXCEL成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
用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/lierjie/p/4025589.html