C#操作CSV文件类实例

本文实例讲述了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#程序设计有所帮助。

以上是 C#操作CSV文件类实例 的全部内容, 来源链接: utcz.com/z/330411.html

回到顶部