读写CSV文件
- var allFiles = Directory.GetFiles(@"D:\uploadpdf", "*.csv");
- string dataIsNull = @"D:\dataisnull.txt";
- string matchLog = @"D:\matchLog.txt";
- foreach (var filePath in allFiles)
- {
- DataTable dt = new DataTable();
- FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
- StreamReader streamReader = new StreamReader(fileStream);
- //记录每次读取的一行记录
- string strLine = string.Empty;
- //记录每行记录中的各字段的内容
- string[] aryLine = null;
- string[] tableHead = null;
- //标示列数
- int columCount = ;
- //标示是否是读取的第一行
- bool isFirst = true;
- Console.Out.WriteLine("");
- StringBuilder headBuilder = new StringBuilder();
- //逐行读取CSV中的数据
- while ((strLine = streamReader.ReadLine()) != null)
- {
- if (isFirst)
- {
- tableHead = strLine.Split(',');
- isFirst = false;
- columCount = tableHead.Length;
- //创建列
- foreach (var head in tableHead)
- {
- DataColumn column = new DataColumn(head);
- dt.Columns.Add(column);
- headBuilder.AppendFormat("{0}\t\t\t", head);
- }
- if (headBuilder.Length != )
- {
- using (StreamWriter sw = File.AppendText(matchLog))
- {
- sw.WriteLine(headBuilder.ToString());
- }
- }
- }
- else
- {
- aryLine = strLine.Split(',');
- DataRow row = dt.NewRow();
- if (aryLine.Length == columCount)
- {
- for (int i = ; i < columCount; i++)
- {
- row[i] = aryLine[i];
- }
- }
- dt.Rows.Add(row);
- }
- }
- if (aryLine != null && aryLine.Length > )
- {
- dt.DefaultView.Sort = tableHead[] + " asc";
- }
- streamReader.Close();
- fileStream.Close();
- if (dt.Rows.Count == )
- {
- //OutputLog(dataIsNull, string.Format("{0} data is null.", filePath));
- continue;
- }
- StringBuilder mpAttributesLog = new StringBuilder();
- foreach (DataRow row in dt.Rows)
- {
- //var values = row.ItemArray;
- //foreach (var head in tableHead)
- //{
- // mpAttributesLog.AppendFormat("{0}\t\t\t", row[head]);
- //}
- mpAttributesLog.Append(string.Join("\t\t\t", row.ItemArray));
- if (mpAttributesLog.Length != )
- {
- using (StreamWriter sw = File.AppendText(matchLog))
- {
- sw.WriteLine(mpAttributesLog.ToString());
- mpAttributesLog.Clear();
- }
- }
- }
- }
读写CSV文件的更多相关文章
- 用opencsv文件读写CSV文件
首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...
- 使用Python读写csv文件的三种方法
Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...
- python3读写csv文件
python读取CSV文件 python中有一个读写csv文件的包,直接import csv即可.利用这个python包可以很方便对csv文件进行操作,一些简单的用法如下. 1. 读文件 csv_ ...
- python读写csv文件
文章链接:https://www.cnblogs.com/cloud-ken/p/8432999.html Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗 ...
- 利用JavaCSV API来读写csv文件
http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/ 转载请注明来源-作者@ ...
- 使用 Apache Commons CSV 读写 CSV 文件
有时候,我们需要读写 CSV 文件,在这里给大家分享Apache Commons CSV,读写 CSV 文件非常方便. 具体官方文档请访问Apache Commons CSV. 官方文档已经写得很详细 ...
- python3使用csv包,读写csv文件
python操作csv,现在很多都用pandas包了,不过python还是有一个原始的包可以直接操作csv,或者excel的,下面举个例子说明csv读写csv文件的方法: import os impo ...
- C/C++读写csv文件
博客转载自:http://blog.csdn.net/u012234115/article/details/64465398 C++ 读写CSV文件,注意一下格式即可 #include <ios ...
- JAVA读写CSV文件
最近工作需要,需要读写CSV文件的数据,简单封装了一下 依赖读写CSV文件只需引用`javacsv`这个依赖就可以了 <dependency> <groupId>net.sou ...
- (Python基础教程之十二)Python读写CSV文件
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
随机推荐
- oracle杀用户建用户改密码脚本
# ******************************** # * dba_oracle_awr.sh # ******************************** # Usage: ...
- [译]使用JMH进行微基准测试:不要猜,要测试!
英文原文:Micro Benchmarking with JMH: Measure, don't guess!翻译地址:使用JMH进行微基准测试:不要猜,要测试!原文作者:Antonio翻译作者:Ho ...
- CSS样式表(二)
[layout] clear:该属性的值指出了不允许有浮动对象的边. 默认值:none none: 允许两边都可以有浮动对象 both: 不允许有浮动对象 left: 不允许左边有浮动对象 right ...
- 微信小程序-视图数据绑定
数据绑定 在逻辑层设置数据例如: Page({ data: { message: 'Hello MINA!' } })//设置了一个属性,名称是message 值为Hello MINA! 在视图显示数 ...
- VMWare虚拟机设置固定ip上网方法
转自:http://blog.csdn.net/cyberrusher/article/details/7269795 1. 在VMWare工具栏中打开:编辑--->虚拟机网络编辑器, 打开VM ...
- 读《编写可维护的JavaScript》第11章总结
这周也是拿到了同程的offer,从此走上了前端之路!感谢我的贵人们.再次纪念一下~! 第11章 不是你的对象不要动 11.1 什么是你的 你的对象:当你的代码创建了这些对象或者你有职责维护其他人的代码 ...
- python走起之第十二话
1. ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型 ...
- Redis学习-基础环境介绍(二)
1.通过VMware安装了Centos6.8系统 2.Reids安装过程,需要GCC环境 »通过下面命令,根据提示直接安装 1 yum install gcc 3.Redis选用的是3.2.4(建议使 ...
- 展讯camera去除尺寸相关缓存
amera应用的缓存在/data/data/com.android.camera2/shared_prefs目录下
- 分布式消息队列 Kafka
分布式消息队列 Kafka 2016-02-25 杜亦舒 Kafka是一个高吞吐量的.分布式的消息系统,由Linkedin开发,开发语言为scala具有高吞吐.可扩展.分布式等特点 适用场景 活动数据 ...