首页 / C# / C# CSV文件读写
C# CSV文件读写
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# CSV文件读写,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2976字,纯文字阅读大概需要5分钟。
内容图文
CSV文件非常有意思,大家可以上网查查,记事本格式的文件与CSV可以互相转换使用,因此不要把CSV当成Excel文件处理,而是普通的文件即可
public class CSVFileHelper { /// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// <param name="dt"> 提供保存数据的DataTable </param> /// <param name="fileName"> CSV的文件路径 </param> public static void SaveCSV(DataTable dt, string fullPath) { FileInfo fi = new FileInfo(fullPath); if (!fi.Directory.Exists) { fi.Directory.Create(); } FileStream fs = new FileStream(fullPath, System.IO.FileMode.Create, System.IO.FileAccess.Write); //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8); string data = ""; //写出列名称for (int i = 0; i < dt.Columns.Count; i++) { data += dt.Columns[i].ColumnName.ToString(); if (i < dt.Columns.Count - 1) { data += ","; } } sw.WriteLine(data); //写出各行数据for (int i = 0; i < dt.Rows.Count; i++) { data = ""; for (int j = 0; j < dt.Columns.Count; j++) { string str = dt.Rows[i][j].ToString(); str = str.Replace("\"", "\"\"");//替换英文冒号 英文冒号需要换成两个冒号if (str.Contains(‘,‘) || str.Contains(‘"‘) || str.Contains(‘\r‘) || str.Contains(‘\n‘)) //含逗号 冒号 换行符的需要放到引号中 { str = string.Format("\"{0}\"", str); } data += str; if (j < dt.Columns.Count - 1) { data += ","; } } sw.WriteLine(data); } sw.Close(); fs.Close(); DialogResult result = MessageBox.Show("CSV文件保存成功!"); if (result == DialogResult.OK) { System.Diagnostics.Process.Start("explorer.exe", Common.PATH_LANG); } } ///<summary>/// 将CSV文件的数据读取到DataTable中 ///</summary>///<param name="fileName">CSV文件路径</param>///<returns>返回读取了CSV数据的DataTable</returns>publicstatic DataTable OpenCSV(string filePath) { Encoding encoding = Common.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); //string fileContent = sr.ReadToEnd(); //encoding = sr.CurrentEncoding; //记录每次读取的一行记录string strLine = ""; //记录每行记录中的各字段内容string[] aryLine = null; string[] tableHead = null; //标示列数int columnCount = 0; //标示是否是读取的第一行bool IsFirst = true; //逐行读取CSV中的数据while ((strLine = sr.ReadLine()) != null) { //strLine = Common.ConvertStringUTF8(strLine, encoding); //strLine = Common.ConvertStringUTF8(strLine);if (IsFirst == true) { tableHead = strLine.Split(‘,‘); IsFirst = false; columnCount = tableHead.Length; //创建列for (int i = 0; i < columnCount; i++) { DataColumn dc = new DataColumn(tableHead[i]); dt.Columns.Add(dc); } } else { aryLine = strLine.Split(‘,‘); DataRow dr = dt.NewRow(); for (int j = 0; j < columnCount; j++) { dr[j] = aryLine[j]; } dt.Rows.Add(dr); } } if (aryLine != null && aryLine.Length > 0) { dt.DefaultView.Sort = tableHead[0] + "" + "asc"; } sr.Close(); fs.Close(); return dt; } }
原文:http://www.cnblogs.com/yxhblog/p/7205978.html
内容总结
以上是互联网集市为您收集整理的C# CSV文件读写全部内容,希望文章能够帮你解决C# CSV文件读写所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。