在c#中如何将dataGridView中的数据导出,可以写出以下代码直接调用
View Code
1
///
<summary>
2 /// 将 DataGridView的数据导出Excel
3 /// </summary>
4 /// <remarks>
5 /// using System.IO;
6 /// </remarks>
7 /// <param name="dgv"></param>
8 public static void DataGridViewToExcel(bxyztSkin.Editors.CDataGridView dgv)
9 {
10 SaveFileDialog dlg = new SaveFileDialog();
11 dlg.Filter = " Execl files (*.xls)|*.xls " ;
12 dlg.CheckFileExists = false ;
13 dlg.CheckPathExists = false ;
14 dlg.FilterIndex = 0 ;
15 dlg.RestoreDirectory = true ;
16 dlg.CreatePrompt = true ;
17 dlg.Title = " 保存为Excel文件 " ;
18 dlg.FileName = DateTime.Now.Ticks.ToString().Trim();
19
20 if (dlg.ShowDialog() == DialogResult.OK)
21 {
22 Stream myStream;
23 myStream = dlg.OpenFile();
24 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding( - 0 ));
25 string columnTitle = "" ;
26 try
27 {
28 // 写入列标题
29 for ( int i = 0 ; i < dgv.ColumnCount; i ++ )
30 {
31 if (i > 0 )
32 {
33 columnTitle += " \t " ;
34 }
35 columnTitle += dgv.Columns[i].HeaderText;
36 }
37 sw.WriteLine(columnTitle);
38
39 // 写入列内容
40 for ( int j = 0 ; j < dgv.Rows.Count; j ++ )
41 {
42 string columnValue = "" ;
43 for ( int k = 0 ; k < dgv.Columns.Count; k ++ )
44 {
45 if (k > 0 )
46 {
47 columnValue += " \t " ;
48 }
49 if (dgv.Rows[j].Cells[k].Value == null )
50 columnValue += "" ;
51 else
52 columnValue += dgv.Rows[j].Cells[k].Value.ToString().Trim();
53 }
54 sw.WriteLine(columnValue);
55 }
56 sw.Close();
57 myStream.Close();
58 }
59 catch (Exception e)
60 {
61 MessageBox.Show(e.ToString());
62 }
63 finally
64 {
65 sw.Close();
66 myStream.Close();
67 }
68 }
69 }
2 /// 将 DataGridView的数据导出Excel
3 /// </summary>
4 /// <remarks>
5 /// using System.IO;
6 /// </remarks>
7 /// <param name="dgv"></param>
8 public static void DataGridViewToExcel(bxyztSkin.Editors.CDataGridView dgv)
9 {
10 SaveFileDialog dlg = new SaveFileDialog();
11 dlg.Filter = " Execl files (*.xls)|*.xls " ;
12 dlg.CheckFileExists = false ;
13 dlg.CheckPathExists = false ;
14 dlg.FilterIndex = 0 ;
15 dlg.RestoreDirectory = true ;
16 dlg.CreatePrompt = true ;
17 dlg.Title = " 保存为Excel文件 " ;
18 dlg.FileName = DateTime.Now.Ticks.ToString().Trim();
19
20 if (dlg.ShowDialog() == DialogResult.OK)
21 {
22 Stream myStream;
23 myStream = dlg.OpenFile();
24 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding( - 0 ));
25 string columnTitle = "" ;
26 try
27 {
28 // 写入列标题
29 for ( int i = 0 ; i < dgv.ColumnCount; i ++ )
30 {
31 if (i > 0 )
32 {
33 columnTitle += " \t " ;
34 }
35 columnTitle += dgv.Columns[i].HeaderText;
36 }
37 sw.WriteLine(columnTitle);
38
39 // 写入列内容
40 for ( int j = 0 ; j < dgv.Rows.Count; j ++ )
41 {
42 string columnValue = "" ;
43 for ( int k = 0 ; k < dgv.Columns.Count; k ++ )
44 {
45 if (k > 0 )
46 {
47 columnValue += " \t " ;
48 }
49 if (dgv.Rows[j].Cells[k].Value == null )
50 columnValue += "" ;
51 else
52 columnValue += dgv.Rows[j].Cells[k].Value.ToString().Trim();
53 }
54 sw.WriteLine(columnValue);
55 }
56 sw.Close();
57 myStream.Close();
58 }
59 catch (Exception e)
60 {
61 MessageBox.Show(e.ToString());
62 }
63 finally
64 {
65 sw.Close();
66 myStream.Close();
67 }
68 }
69 }