600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > C# 导入CSV文件 导出到CSV文件

C# 导入CSV文件 导出到CSV文件

时间:2023-04-05 13:42:23

相关推荐

C# 导入CSV文件 导出到CSV文件

导入CSV文件

public static DataTable ImportFromCsv(string filePath)//从csv读取数据返回table {//Encoding encoding = mon.GetType(filePath); //Encoding.ASCII;// DataTable dt = new DataTable();FileStream fs = new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);//StreamReader sr = new StreamReader(fs, Encoding.UTF8); StreamReader sr = new StreamReader(fs, Encoding.Default);//记录每次读取的一行记录 string strLine = "";//记录每行记录中的各字段内容 string[] aryLine = null;//标示列数 int columnCount = 0;//标示是否是读取的第一行 bool IsFirst = true;//逐行读取CSV中的数据 while ((strLine = sr.ReadLine()) != null){DataRow dr = dt.NewRow();aryLine = strLine.Split(',');if (IsFirst == true){IsFirst = false;columnCount = aryLine.Length;//创建列 for (int i = 0; i < columnCount; i++){DataColumn dc = new DataColumn(aryLine[i].ToString());dt.Columns.Add(dc);}}else{for (int j = 0; j < columnCount; j++){dr[j] = aryLine[j];}dt.Rows.Add(dr);}}sr.Close();fs.Close();return dt;}

导出CSV文件

public static string ExportToCsv(System.Data.DataTable dt, string path){string result = string.Empty;try{// 实例化流对象,以特定的编码向流中写入字符。 StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("gb2312"));StringBuilder sb = new StringBuilder();for (int k = 0; k < dt.Columns.Count; k++){// 添加列名称 sb.Append(dt.Columns[k].ColumnName.ToString());if (k < dt.Columns.Count - 1){sb.Append(",");}}sb.Append(Environment.NewLine);// 添加行数据 for (int i = 0; i < dt.Rows.Count; i++){DataRow row = dt.Rows[i];for (int j = 0; j < dt.Columns.Count; j++){// 根据列数追加行数据 sb.Append(row[j].ToString());if (j < dt.Columns.Count - 1){sb.Append(",");}}sb.Append(Environment.NewLine);}sw.Write(sb.ToString());sw.Flush();sw.Close();sw.Dispose();// 导出成功后打开 //System.Diagnostics.Process.Start(path); }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。