首页 > 编程 > C# > 正文

C#操作CSV文件类实例

2020-01-24 02:05:50
字体:
来源:转载
供稿:网友

本文实例讲述了C#操作CSV文件类。分享给大家供大家参考。具体分析如下:

这个C#类用于转换DataTable为CSV文件、CSV文件转换成DataTable,如果需要进行CSV和DataTable之间进行转换,使用这个类非常合适。

using System.Data;using System.IO;namespace DotNet.Utilities{ /// <summary> /// CSV文件转换类 /// </summary> public static class CsvHelper {  /// <summary>  /// 导出报表为Csv  /// </summary>  /// <param name="dt">DataTable</param>  /// <param name="strFilePath">物理路径</param>  /// <param name="tableheader">表头</param>  /// <param name="columname">字段标题,逗号分隔</param>  public static bool dt2csv(DataTable dt, string strFilePath, string tableheader, string columname)  {   try   {    string strBufferLine = "";    StreamWriter strmWriterObj = new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);    strmWriterObj.WriteLine(tableheader);    strmWriterObj.WriteLine(columname);    for (int i = 0; i < dt.Rows.Count; i++)    {     strBufferLine = "";     for (int j = 0; j < dt.Columns.Count; j++)     {      if (j > 0)       strBufferLine += ",";      strBufferLine += dt.Rows[i][j].ToString();     }     strmWriterObj.WriteLine(strBufferLine);    }    strmWriterObj.Close();    return true;   }   catch   {    return false;   }  }  /// <summary>  /// 将Csv读入DataTable  /// </summary>  /// <param name="filePath">csv文件路径</param>  /// <param name="n">表示第n行是字段title,第n+1行是记录开始</param>  public static DataTable csv2dt(string filePath, int n, DataTable dt)  {   StreamReader reader = new StreamReader(filePath, System.Text.Encoding.UTF8, false);   int i = 0, m = 0;   reader.Peek();   while (reader.Peek() > 0)   {    m = m + 1;    string str = reader.ReadLine();    if (m >= n + 1)    {     string[] split = str.Split(',');     System.Data.DataRow dr = dt.NewRow();     for (i = 0; i < split.Length; i++)     {      dr[i] = split[i];     }     dt.Rows.Add(dr);    }   }   return dt;  } }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表