导出escel 超强dataGridView
根据提供的文件信息,本文将详细解释如何通过C#编程语言中的DataGridView控件将数据导出到Excel文件。此过程分为两个部分:一是直接从DataGridView导出数据;二是先将DataGridView中的数据转换为DataTable,再导出到Excel。 ### 一、直接从DataGridView导出数据 在.NET Framework中,DataGridView是一种强大的数据展示控件,它可以直观地显示数据并提供丰富的功能,如排序、筛选等。当需要将这些数据显示到Excel文件时,可以采用以下方法: ```csharp public void DataToExcel(DataGridView m_DataView) { SaveFileDialog kk = new SaveFileDialog(); kk.Title = "EXCEL 文件"; kk.Filter = "EXCEL 文件 (*.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 += 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 += "" + Convert.ToChar(9); else 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 += "" + Convert.ToChar(9); else { string rowStr = m_DataView.Rows[i].Cells[j].Value.ToString(); if (rowStr.IndexOf("\r\n") > 0) rowStr = rowStr.Replace("\r\n", ""); if (rowStr.IndexOf("\t") > 0) rowStr = rowStr.Replace("\t", ""); strLine += rowStr + Convert.ToChar(9); } } } objStreamWriter.WriteLine(strLine); strLine = ""; } objStreamWriter.Close(); objFileStream.Close(); MessageBox.Show(this, "EXCEL 导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ``` ### 二、先将DataGridView中的数据转换为DataTable,再导出到Excel 有时,我们可能需要先将DataGridView中的数据转换为DataTable,然后再进行导出。这种做法的好处是可以更灵活地处理数据,并且便于后续的数据操作。下面是一个示例代码: ```csharp public void DataToExcel(DataTable m_DataTable) { SaveFileDialog kk = new SaveFileDialog(); kk.Title = "EXCEL 文件"; kk.Filter = "EXCEL 文件 (*.xls)|*.xls|所有文件 (*.*)|*.*"; kk.FilterIndex = 1; if (kk.ShowDialog() == DialogResult.OK) { string FileName = kk.FileName + ".xls"; // 创建Excel文件并写入数据 using (FileStream fs = new FileStream(FileName, FileMode.Create, FileAccess.Write)) { IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs); reader.IsFirstRowAsColumnNames = true; foreach (DataRow row in m_DataTable.Rows) { var dataRow = new List<string>(); foreach (DataColumn col in m_DataTable.Columns) { dataRow.Add(row[col].ToString()); } reader.Read(dataRow.ToArray()); } } MessageBox.Show(this, "EXCEL 导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ``` 这段代码首先创建一个`SaveFileDialog`来让用户选择保存文件的位置,然后读取DataGridView中的数据,逐行写入到Excel文件中。注意,这里使用了`ExcelReaderFactory.CreateBinaryReader`来创建Excel文件,这需要引用额外的库(例如EPPlus)来支持Excel文件的读写操作。 通过以上两种方式,我们可以有效地实现从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
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助