1.使用OleDB操作.csv文件,比较费时

         public static DataTable GetDataTableFromCsv(string path,bool isFirstRowHeader)
{
string header = isFirstRowHeader ? "Yes" : "No"; string pathOnly = Path.GetDirectoryName(path);//得到文件夹路径,相当于得到要操作的“数据库”
string fileName = Path.GetFileName(path);//得到文件名,相当于得到要操作的数据库中的数据表 string sql = @"select * from ["+fileName+"]";//sql语句
//操作数据库的流程
using (OleDbConnection con=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +";Extended Properties=\"Text;HDR=" + header + "\""))
{
using (OleDbCommand cmd=new OleDbCommand(sql,con))
{
using (OleDbDataAdapter adapter=new OleDbDataAdapter(cmd))
{
DataTable dt=new DataTable();
dt.Locale=CultureInfo.CurrentCulture;
adapter.Fill(dt);
return dt;
}
}
}
}

2. 使用文件流操作.csv文件,费时短(txt文件也可以)

         public static DataTable ConvertCsvToDataTable(string fileName)
{
DataTable dt=new DataTable();
using (StreamReader sr=new StreamReader(fileName,Encoding.UTF8))
{
string[] headers = sr.ReadLine().Split(',');//处理头部标题
foreach (string header in headers)
{
dt.Columns.Add(header);
}
while (!sr.EndOfStream)
{
string[] rows = sr.ReadLine().Split(',');
DataRow dr = dt.NewRow();
for (int i = ; i < headers.Length; i++)
{
dr[i] = rows[i];
}
dt.Rows.Add(dr);
}
}
return dt;
}

3.winform中应用

         private void btnGet_Click(object sender, EventArgs e)
{
//打开文件对话框
OpenFileDialog ofd=new OpenFileDialog() {Filter = "Csv文件|*.csv|Excel文件|*.xls|所有文件|*.*", InitialDirectory = @"C:\Users\LWP1398\Desktop",RestoreDirectory = true};
if (ofd.ShowDialog()==DialogResult.OK)
{
string fileName = ofd.FileName;
//dgv.DataSource = GetDataTableFromCsv(fileName, true);
dgv.DataSource = ConvertCsvToDataTable(fileName);
}
MessageBox.Show("ok");
}

C#操作.csv文件Demo的更多相关文章

  1. java 操作 csv文件

    CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...

  2. 用javacsv API 来操作csv文件

    javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法. 先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中.  本站下载地址: htt ...

  3. java操作csv文件之javacsv.jar应用

    csv文件是分隔文件,如果使用java的io流来写,比较麻烦,这里为大家提供一个javacsv的jar包,这个很方便操作csv文件. 下载地址:https://pan.baidu.com/s/1i46 ...

  4. python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  5. Java操作csv文件

    以前就一直很想搞懂一个问题就是java如何读取和写入csv文件,现在要花时间总结一波. 主要使用的javaCSV.jar javaCSV API:http://javacsv.sourceforge. ...

  6. springbatch操作CSV文件

    一.需求分析 使用Spring Batch对CSV文件进行读写操作: 读取一个含有四个字段的CSV文件(id, name, age, score), 对文件做简单的处理, 然后输出到还有一个csv文件 ...

  7. Python操作csv文件

    1.什么是csv文件 The so-called CSV (Comma Separated Values) format is the most common import and export fo ...

  8. CsvReader和CsvWriter操作csv文件

    使用方法: 提供把实例数据输出到磁盘csv文件的功能 提供读取csv文件,并封装成指定实例的功能 小工具自己依赖了slf4j+logbak,以及fastJson,如果与系统冲突,可以在pom文件中去除 ...

  9. 数学建模之Python操作csv文件

    1.用Python通过csv文件里面的某一列,形成键值,然后统计键在其他列出现的次数. import pandas as pd import numpy as np import csv import ...

随机推荐

  1. TClientDataSet中关于TField、TFieldDef动态创立字段的应用

    //使用 TFieldDef 建表: begin with ClientDataSet1.FieldDefs do begin Add('Name' , ftString, 12, True); { ...

  2. WPF 心形线算法

    今天在网上查找下心形算法公式,自己便按照公式写下来标记在博客,主要是方便以后查看! private int maxStep = 520; private double radius; private ...

  3. .NET开发作业调度(job scheduling) - Quartz.NET

    Quartz.NET是JAVA Job Scheduling框架Quartz在.NET平台上的实现,可以满足小型乃至大型企业应用中的Job Scheduling. 通过Nuget安装Quartz.NE ...

  4. 绘制dot 图

    常用参数 格式:dot -T<type> -o<outfile> <infile.dot> 输入文件是<infile.dot>,生成的格式由<ty ...

  5. (转)MapReduce中的两表join几种方案简介

    转自:http://blog.csdn.net/leoleocmm/article/details/8602081 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而 ...

  6. wrk 网站压力测试

    下载安装 wrk [root@aikaiyuan ~]# git clone https://github.com/wg/wrk.gitInitialized empty Git repository ...

  7. Nginx开启gzip压缩功能

    在Nginx安装完成之后,我们可以开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩.下面的指令为开启Gzip的指令: gzip on; gzip_http_versi ...

  8. Ubuntu多系统安装注意事项

    1. 安装 选择分区时一定要全设置成逻辑分区,不能是主分区! 2.多系统引导向修复 利用LiveCD制作U盘启动进入Ubuntu系统,若挂载点为: /dev/sda9             swap ...

  9. ios关于layer的一些常用属性

    UILabel * labb = ... //set the border of labb labb.layer.borderWidth = 1; labb.layer.borderColor = [ ...

  10. 如何阻止iframe里引用的网页自动跳转

    今天做了个网页,要在网页http://www.58shuwu.com/to/21766654/Legend%20of%20Miyue/ 里设置一个iframe,然后套用其他的网站.使用http://m ...