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. [TCPIP] DNS Note

    TCPIP DNS  域名系统 DNS 是一个应用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 对DNS的访问是通过一个地址解析器来完成的,在Un ...

  2. linux 调用java main方法

    #!/bin/shexport LANG=zh_CNtimestamp=`date +%Y%m%d%H%M`/opt/java6/bin/java -Xms128m -Xmx512m -Dfile.e ...

  3. python 学习笔记 redis操作

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  4. Android二维码功能实现,在程序内嵌入ZXing项目

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9526247 最近二维码真是越来越火了,随便电视上.网络上.商场里,到处都是二维码. ...

  5. 1.NSNotification|远程通知|本地通知|激光推送

    1.   通知在iOS中应用非常广泛,合理的应用通知可以减少冗余代码,使我们的代码层次结构变了更加的清晰明了,利于程序猿读写.它主要分为不可见通知可见通知两种: 1.1 不可见通知,主要是有系统发出的 ...

  6. ubuntu文件夹建立软链接方法

    1:预备知识 -s 是代号(symbolic)的意思. 这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化:第二,ln的链接又软链 ...

  7. A simple script to get all pictures

    #-*- coding:utf-8 -*- import shutil import os from Tkinter import * import time import re def get_al ...

  8. DOCTYPE声明作用及用法详解

    一.浏览器呈现模式和doctype 有的网页是遵循标准而创作的,但也有很多不是.即使你不能创建遵循标准的网页,也希望浏览器根据标准来正确显示那些页.目前,大量网页充斥着大量非标准代码,它们仍能正常地工 ...

  9. Maven教程

    找了一个很详细的maven教程 收藏下 学习网址:http://www.yiibai.com/maven/

  10. OSChina码云试用

    首先在码云申请账户. 从 http://git-scm.com/download  下载window版的客户端.下载好,一步一步安装即可. $git config --global user.name ...