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文件的更多相关文章

  1. 用opencsv文件读写CSV文件

    首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...

  2. 使用Python读写csv文件的三种方法

    Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...

  3. python3读写csv文件

    python读取CSV文件   python中有一个读写csv文件的包,直接import csv即可.利用这个python包可以很方便对csv文件进行操作,一些简单的用法如下. 1. 读文件 csv_ ...

  4. python读写csv文件

    文章链接:https://www.cnblogs.com/cloud-ken/p/8432999.html Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗 ...

  5. 利用JavaCSV API来读写csv文件

    http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/ 转载请注明来源-作者@ ...

  6. 使用 Apache Commons CSV 读写 CSV 文件

    有时候,我们需要读写 CSV 文件,在这里给大家分享Apache Commons CSV,读写 CSV 文件非常方便. 具体官方文档请访问Apache Commons CSV. 官方文档已经写得很详细 ...

  7. python3使用csv包,读写csv文件

    python操作csv,现在很多都用pandas包了,不过python还是有一个原始的包可以直接操作csv,或者excel的,下面举个例子说明csv读写csv文件的方法: import os impo ...

  8. C/C++读写csv文件

    博客转载自:http://blog.csdn.net/u012234115/article/details/64465398 C++ 读写CSV文件,注意一下格式即可 #include <ios ...

  9. JAVA读写CSV文件

    最近工作需要,需要读写CSV文件的数据,简单封装了一下 依赖读写CSV文件只需引用`javacsv`这个依赖就可以了 <dependency> <groupId>net.sou ...

  10. (Python基础教程之十二)Python读写CSV文件

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

随机推荐

  1. cocos2dx UI总结

    1.a->addChild(b); 如果b是一个layer,则默认是忽略锚点的,此时无论你怎么设置它的锚点都没用,必须先b->ignoreAnchorPointForPosition(fa ...

  2. Unity中各类物理投射性能横向比较

    最近在优化摄像机部分代码,抽了个时间对物理投射这块进行了系统性的测试,发现了不少东西 测试工程下载地址: http://files.cnblogs.com/files/hont/RaycastTest ...

  3. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  4. [POJ3111]K Best(分数规划, 二分)

    题目链接:http://poj.org/problem?id=3111 求选k对数,使得上述式子值最大.容易想到设左边为一个值,对式子变形以下,得到sigma(v-r*w))==0的时候就是最大的,& ...

  5. Android Button上的文字自动变成大写,如何解决呢?

    android:textAllCaps="false"手动添加这一行,就不会有烦恼了.

  6. 如何用photoshop把图片白色背景变成透明?

    1.当提示配置文件丢失时,选择“指定RGB模式”. 2.Ctrl+J是一个复合动作,复制+新建,会得到一个新图层. 3.选中新图层,点击鼠标左边工具条里面的魔棒工具,再用鼠标点击下图片的某处白色部分, ...

  7. 携程Ctrip DAL的学习 2

    携程Ctrip DAL的学习 2 本人net开发菜鸟,原理请自行看github的官网源码. 我这里是简单的使用(helloworld的水平). 代码生成器的使用 详见 官网使用说明 注意的地方: 1 ...

  8. webstorm自动编译typescript

    http://bbs.egret.com/thread-1752-1-1.html http://bbs.egret.com/thread-1912-1-1.html

  9. liunx 系统 git clone ssh代码时需要sshkey

    1. 在root用户目录下 执行命令 cd .ssh cat id_rsa.pub 粘贴 ssh key

  10. SPSS数据分析—多维偏好分析(MPA)

    之前的主成分分析和因子分析中,收集的变量数据都是连续型数值,但有时会碰到分类数据的情况,我们知道最优尺度变换可以对分类变量进行量化处理,如果将这一方法和主成分分析相结合,就称为了基于最优尺度变换的主成 ...