读写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字符串操 ...
随机推荐
- day4总结
函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或 ...
- 2016ACM/ICPC亚洲区沈阳站-重现赛
C.Recursive sequence 求ans(x),ans(1)=a,ans(2)=b,ans(n)=ans(n-2)*2+ans(n-1)+n^4 如果直接就去解...很难,毕竟不是那种可以直 ...
- hdu5737(2016多校联赛第2场D)
题意:给2组数据a和b数组,每次有2种操作:(+,l,r,x)把a数组第l个到第r个元素全置为x,(?,l,r)查询[l,r]之间哪些位置满足a[i]>=b[i](i>=l &&a ...
- PHP将图片二进制转换
http://www.360doc.com/content/14/0325/10/947551_363526874.shtml
- linux下的a.out文件
当然这里,我更重要的是强调这个什么段,什么段.这以前就知道.但其实是对一个可以执行的c语言程序的分析.就好比你分析一篇作文.有标题.有段落. .out文件就是扩展名为out的文件,它本身不代表任 ...
- 手机响应式js轮播基础
onmousedown --->ontuchstart onmousemove --->ontouchmove onmouseup --->ontouchend ontuchstar ...
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer"> <div class=&quo ...
- setTimeout和setInterval的区别以及如何写出效率高的倒计时
1.setTimeout和setInterval都属于js中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直 ...
- Mysql安装出现=========== install/remove of the Service Denied
在安装mysql过程中遇到一个问题 install/remove of the Service Denied,这个问题说明自己没有安装和删除的权利,原因是自己在运行cmd过程是没有使用管理员身份运行 ...
- js基本类型 引用类型
参考 https://segmentfault.com/a/1190000005794070 http://blog.csdn.net/yummy_go/article/details/5050468 ...