1 /// <summary>
2 /// 导出数据到CSV文件
3 /// </summary>
4 /// <param name="fileName"></param>
5 /// <param name="table"></param>
6 private void ExportDataToCSV(string fileName, DataTable table)
7 {
8 if (table == null || table.Rows.Count == 0)
9 {
10 return;
11 }
12
13 SaveFileDialog saveDlg = new SaveFileDialog();
14 saveDlg.Filter = "CSV文件(*.csv)|*.csv";
15 saveDlg.FileName = fileName + DateTime.Now.ToString("yyyyMMdd");
16
17 if (saveDlg.ShowDialog() == DialogResult.OK)
18 {
19 FileStream fs = new FileStream(saveDlg.FileName, FileMode.Create);
20 StreamWriter write = new StreamWriter(fs, Encoding.Default);
21 try
22 {
23 //标题行
24 string userCode = table.Columns["UserCode"].ColumnName = "用户名称";
25 string userKey = table.Columns["UserKey"].ColumnName = "用户编码";
26 string isRegist = table.Columns["IsRegist"].ColumnName = "是否注册";
27 string serial = table.Columns["Serial"].ColumnName = "序列号";
28 string isEnable = table.Columns["IsEnable"].ColumnName = "是否启用";
29 write.Write(userCode + ",");
30 write.Write(userKey + ",");
31 write.Write(isRegist + ",");
32 write.Write(serial + ",");
33 write.Write(isEnable + ",");
34
35 write.WriteLine();
36
37 //明细行
38 for (int row = 0; row < table.Rows.Count; row++)
39 {
40 string Tem = "";
41 for (int column = 2; column <= table.Columns.Count - 1; column++)
42 {
43 if (table.Rows[row][column] != DBNull.Value)
44 {
45 string TemString = table.Rows[row][column].ToString().Trim();
46 Tem += TemString + "\t";
47 Tem += ",";
48 }
49 else
50 {
51 string TemString = "";
52 Tem += TemString;
53 Tem += ",";
54 }
55 }
56 write.WriteLine(Tem);
57 }
58 write.Flush();
59 write.Close();
60 MessageBox.Show("导出成功:" + saveDlg.FileName.ToString().Trim());
61 }
62 catch (Exception ex)
63 {
64 MessageBox.Show(ex.ToString());
65 write.Close();
66 }
67 }
68 }