上一篇写到了读取文本文件的各种方式,这次我们来读取一下CSV文件;
CSV文件在日常工作中用到的也很多,很多时候我们导出大量表格数据的时候,EXCEL无法存储,CSV就是很不错的选择;
CSV文件其实也是一种文本文件,所以我们也可以用上一篇提到的以文件流的方式去读取。
实现功能:
读取CSV文件并将结果展示到dataGridView
开发环境:
开发工具: Visual Studio 2013
.NET Framework版本:4.5
具体实现代码如下:
//实例化一个datatable用来存储数据
DataTable dt = new DataTable();
//文件流读取
System.IO.FileStream fs = new System.IO.FileStream("d:\1.csv", System.IO.FileMode.Open);
System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312"));
string tempText = "";
bool isFirst = true;
while ((tempText = sr.ReadLine()) != null)
{
string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
//一般第一行为标题,所以取出来作为标头
if (isFirst)
{
foreach (string str in arr)
{
dt.Columns.Add(str);
}
isFirst = false;
}
else
{
//从第二行开始添加到datatable数据行
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i )
{
dr[i] = i < arr.Length ? arr[i] : "";
}
dt.Rows.Add(dr);
}
}
//展示到页面
dataGridView1.DataSource = dt;
//关闭流
sr.Close(); fs.Close();
由简入繁,拿来即用