上一篇写到了读取文本文件的各种方式,这次我们来读取一下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();
由简入繁,拿来即用