CSV文件是 逗号分隔值文件

内容基本是这么存的...

姓名,年龄,性别/r/n王有才,,男/r/n王二妞,,女 

一行值内用逗号 , 分开  行与行之间用  /r/n  分隔

说白了,他其实是一个字符串..按照一定的格式存储进文件..可以直接用文本文件打开..

邮箱,昵称,手机
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,
"3595768@qq.com",test1,

所以我们可以直接用IO操作..把内容读取出来..

使用文件流的方式读取CSV文件
FileInfo file = new FileInfo(Server.MapPath(filePath));
StreamReader reader = new StreamReader(Server.MapPath(filePath));
string fileContent = reader.ReadToEnd();
reader.Close();
reader.Dispose();

fileContent就是对应的CSV文件的内容..可以使用固定的处理方式截取..断开每一行的数据然后分别处理..

使用表格的形式读取CSV文件

但是如果想要更好的处理的话..可以引用  lumenworks.framework.io.dll

下载地址:     http://download.csdn.net/detail/sunyanjie_china/8297731

添加引用

using LumenWorks.Framework.IO.Csv;

代码

DataTable dt = new DataTable(); //表
using (CsvReader csvReader = new CsvReader(new StreamReader(Server.MapPath(filePath), Encoding.Default, true), true))
{
string[] headers = csvReader.GetFieldHeaders();//标题数组
for (int i = ; i < csvReader.FieldCount; i++)
{
dt.Columns.Add(new DataColumn(headers[i]));
} while (csvReader.ReadNextRecord())
{
DataRow row = dt.NewRow();
for (int i = ; i < csvReader.FieldCount; i++)
{
row[i] = csvReader[i].Replace("\t", "").Replace(" ", "");
}
dt.Rows.Add(row);
}
}
导出数据成CSV文件
     SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = ;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到"; DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft()
+ now.Month.ToString().PadLeft(, '')
+ now.Day.ToString().PadLeft(, '') + "-"
+ now.Hour.ToString().PadLeft(, '')
+ now.Minute.ToString().PadLeft(, '')
+ now.Second.ToString().PadLeft(, ''); saveFileDialog.ShowDialog(); Stream myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = ; i < dt.ColumnCount; i++)
{
if (i > )
{
str += "\t";
}
str += dt.Columns[i].HeaderText;
} sw.WriteLine(str);
//写内容
for (int j = ; j < dt.Rows.Count; j++)
{
string tempStr = "";
for (int k = ; k < dt.Columns.Count; k++)
{
if (k > )
{
tempStr += "\t";
}
tempStr += dt.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sw.Close();
myStream.Close();
} //这个方式用的最多..也是最效率的方式导出成为CSV文件..大概20万条数据只需要十几秒的样子..非常方便
//在这里谢谢那些以前翻资料看到文章的那些大神..时间久了都忘却了是哪位..但是还是谢谢..

CSV文件的读取 导出的更多相关文章

  1. Python对于CSV文件的读取与写入

    今天天气"刚刚好"(薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白 ...

  2. 深度学习原理与框架-递归神经网络-时间序列预测(代码) 1.csv.reader(进行csv文件的读取) 2.X.tolist(将数据转换为列表类型)

    1. csv.reader(csvfile) # 进行csv文件的读取操作 参数说明:csvfile表示已经有with oepn 打开的文件 2. X.tolist() 将数据转换为列表类型 参数说明 ...

  3. java 对CSV 文件的读取与生成

    CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开.CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CS ...

  4. php对csv文件的读取,写入,输出下载操作

    在实际工作中,很多时候需要把网站上的一些数据下载到CSV文件里,方便以后查看. 亦或者是用CSV进行一些批量的上传工作. 这个时候我们就需要对CSV进行读写操作. 1.CSV的读取操作 <?ph ...

  5. python3 简单实现从csv文件中读取内容,并对内容进行分类统计

    新手python刚刚上路,在实际工作中遇到如题所示的问题,尝试使用python3简单实现如下,欢迎高手前来优化import csv #打开文件,用with打开可以不用去特意关闭file了,python ...

  6. python中csv文件的读取问题

    在python读取csv格式的文件时,使用csv.reader读取文件对象,出现了line contains NULL byte的错误,如下: reader = csv.reader(open(fil ...

  7. 图像处理项目——生成csv文件提高读取效率

    利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...

  8. 【CSV文件】CSV文件内容读取

    CSV(逗号分隔值文件格式) 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本 ...

  9. csv文件的读取

    .csv Introduction CSV是一种常以逗号或者制表符分割的文件格式. 利用Excel创建一个csv文件 用记事本打开,实际上是这样子的: 读取csv文件 直接用open()打开 with ...

随机推荐

  1. 美化select下拉框

    直接上干货: 需要的材料: change_select.js (文末会给出下载地址) 使用方法: 1.调用方法:<script type="text/javascript" ...

  2. bash中不可以用字符串做数组下标

    bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...

  3. 使用 Daynamic 动态添加属性

    所谓的Dynamic 动态类型,页面也要是动态的(强撸) 很简单的 直接上代码: //案例一 DynamicpersonCollection = new ObservableCollection(); ...

  4. Web前端性能优化教程03:添加Expires头

    本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...

  5. &nbsp;兼容性问题

    直接在html文档中使用 来表示空格,在不同浏览器中的占位大小是不一样的. 因为不同浏览器默认的字体是不一样的,不同字体下的空格表示 占位大小不一致. 我们对 指定使用同样的字体就能让 显示同样的占位 ...

  6. ASCII码对照表

    最近做东西常用到,所以就这里和收藏一下,需要注意的是10和13,在windows中文本java会把回车解释成是1310两个字节,在linux下面是10一个字节. 下面是将两个文件读成了二进制之后的结果 ...

  7. Scala特性: 隐式转换

    1.隐式转换特征: 1)隐式参数的用法 · 获取可能的预期类型 · 获取预期类型,并且拥有预期类型的行为 · 对信息进行补充说明(一般用函数做隐式参数的比较多) 2)隐式类: 3)隐式method:

  8. C#用HttpClient抓取jd.com搜索框下拉数据

    添加System.Web.dll引用 添加System.Net.Http引用 using System.Net.Http; using System.Web; string key = "电 ...

  9. opencv 简单模糊和高斯模糊 cvSmooth

    cv::Mat 是C++版OpenCV的新结构. cvSmooth() 是老版 C API. 没有把C接口与C + + 结合. 建议你们也可以花一些时间看一下介绍. 同样,你如果查看opencv/mo ...

  10. codeforce B Island Puzzle

    B. Island Puzzle time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...