为什么用DataTable读取CSV文件?
在数据量不是非常巨大的时候,DataTable可以提供编程式的查询和排序工作,减少了处理csv文件的工作量。
如:[Column1] > 0 and [Column2] = 'abc';
public class CSVAnalysis
{
public static DataTable ReadCSV(string filePath, string sortString)
{
DataTable result = new DataTable();
using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
{
string titleColumns = sr.ReadLine();
string[] titles = titleColumns.Split(',');
foreach (string title in titles)
{
result.Columns.Add(title.Trim(), typeof(string));
}
while (true)
{
string content = string.Empty;
content = sr.ReadLine();
if (string.IsNullOrEmpty(content))
{
break;
}
string[] contens = content.Split(',');
DataRow dr = result.NewRow();
for (int i = 0; i < contens.Length; i++)
{
dr[titles[i].Trim()] = contens[i].Trim('"');
}
result.Rows.Add(dr);
}
}
if (!string.IsNullOrEmpty(sortString))
{
result.DefaultView.Sort = sortString;// "SPItemGuid asc";
}
return result.DefaultView.ToTable();
}
}
DataTable dtNew = CSVAnalysis.ReadCSV(CSVFilePath, "[Column1] asc");