c#读写csv
来源:互联网 发布:手机写歌软件 编辑:程序博客网 时间:2024/05/21 07:55
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> public static 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; }}
0 0
- c#读写csv
- C# CSV文件读写
- C# CSV文件读写
- C# CSV文件读写
- c#对csv的读写
- C#对 CSV文件读写
- 用C#写的读写CSV文件
- 一个读写csv文件的C#类
- C# 读写CSV文件到DataTable
- 用C#写的读写CSV文件
- 一个读写csv文件的C#类
- csv读写
- commons-csv读写CSV文件
- 读写csv 文件
- Java读写CSV文件
- csv文件读写操作
- Java读写CSV文件
- 读写xls csv数据
- ORACLE 死锁日志查询
- beagleboneblcak的Debian镜像下登录控制方式
- 不用乘、除、减、平方打印前N个平方数
- Slave_IO_Running: Connecting解决办法
- 一步一步的无障碍理解快速傅立叶变换
- c#读写csv
- python 调用短信接口
- Android EditText聚焦时hint消失的简单代码
- Zookeeper资料整理
- http://blog.csdn.net/liuhe688/article/details/6715983
- HDU 5015 233 Matrix (数论——矩阵快速幂)
- 动态代理
- smarty中定义数据变量问题
- HDU 1181.变形课【DFS(BFS也可以的)】【问题的转化】【8月5】